我有一個看起來像這樣的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