【发布时间】:2011-01-09 14:34:21
【问题描述】:
我有一个看起来像这样的 Django 模型。
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 的字段的唯一性|型号年份。" docs.djangoproject.com/en/1.1/topics/forms/modelforms/…
-
你可以试试没有排除部分吗?手动选择我认为由您的观点决定的问题。
标签: django validation modelform