所以现在我正在编辑modelform提供给视图的querydict,以使一个字段中的提交内容全部小写,并且没有空格。但是,当我构造字典并将其传递回要验证/保存的modelform时,如果同一个东西被多次输入,它不会给我一个错误。似乎unique=true应该适用于所有格式正确的提交,而不仅仅是来自request.post的提交。关于这个问题的任何帮助/见解都会很棒。
编辑:代码
处理模型窗体的视图

dict = {}
sitename = request.POST['sitename']
#insert an if statement telling them only letters are allowed
urltitle = ''.join(sitename.split()).lower()
dict['sitename'] = urltitle
make =  MakesiteForm(dict)
if make.is_valid():
      make.save()

有问题的模型
class Makesite(models.Model):
    sitename = models.CharField(max_length=100, unique = True)
    siteinfo = models.ManyToManyField(Siteinfo)
    ref_id = models.ManyToManyField(RefID)
    def __unicode__(self):
        return u'%s' %(self.sitename)

最佳答案

1.不要重新分配内置dict功能
2.现场处理逻辑应采用清洁方法:

class MakesiteForm(forms.ModelForm):

    # your code... Then

    def clean_sitename(self):
        sitename = self.cleaned_data['sitename']
        return ''.join(sitename.split()).lower()

3.显示如果表单无效,您会得到哪些错误?

10-08 10:53