我有一个看起来像这样的Django模型。Django的ModelForm unique_together验证
class Solution(models.Model):
'''
Represents a solution to a specific problem.
'''
name = models.CharField(max_length=50)
problem = models.ForeignKey(Problem)
description = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ("name", "problem")
我使用表单添加模型,看起来像这样:
class SolutionForm(forms.ModelForm):
class Meta:
model = Solution
exclude = ['problem']
我的问题是,SolutionForm
不验证Solution
的unique_together
约束,因此,它试图在返回IntegrityError
保存表格。我知道我可以使用validate_unique
来手动检查这一点,但我想知道是否有任何方法可以在表单验证中捕获这些信息并自动返回表单错误。
谢谢。
你确定你设置都正确,因为有关模型的形式syas清晰的文档: “默认情况下,clean()方法验证在模型上标记为unique,unique_together或unique_for_date | month | year的字段的唯一性。”http://docs.djangoproject.com/en/1.1/topics/forms/modelforms /#重写 - 清除方法 – 2010-01-26 18:47:18
你可以在没有排除部分的情况下尝试吗?手动选择我假设的问题由您的视图决定。 – 2010-01-26 20:27:06