Django:如何确保记录/表单中字段或字段组的唯一值

时间:2011-09-18 13:50:45

标签: django django-models django-forms

我正在使用ModelForm,我对默认验证和错误感到满意。 在我的模板中,我使用一个简单的: 带{{ form.as_ul }}块的{% if form.errors %}

模型包含那些字段:

group1_wish1 = models.CharField(max_length=100, choices=GROUP1CHOICES)
group1_wish2 = models.CharField(max_length=100, choices=GROUP1CHOICES)
group2_wish1 ....
group2_wish2 ....

不允许每个用户为每个组制作两次相同的愿望:group_wish1!= group_wish2。

是否有可以让我实现此目标的模型验证选项?

我查看了unique但它在桌面级别工作。

我知道如何尽可能简单地使用它吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法应该是在ModelForm(forms.py)的定义中覆盖表单的clean()方法。

请参阅Django文档:
Cleaning and validating fields that depend on each other
ModelForms: Overriding the clean()-method