How can I allow empty fields in my ModelForm while still using unique = True?
目前在
1 2 | class ModelName(models.Model): rowname = models.CharField(max_length=100, blank = True, unique=True) |
这确实令人惊讶,因为确保同一个值不会两次提交到数据库,但是否有一种方法可以使唯一值在重复值为空字符串时不会引发错误?
本质上,你需要遵循这个答案中的建议。Django认为
通过在模型中添加
1 | rowname = models.CharField(..., blank = True, null = True, unique = True) |
将空字符串改为
1 2 3 4 5 6 7 8 | class ModelNameForm(forms.ModelForm): class Meta: model = ModelName def clean_rowname(self): return self.cleaned_data['rowname'] or None class ModelNameAdmin(admin.ModelAdmin): form = ModelNameForm |
号