0
假設我有models.py
一個簡單的模型,旨在通過Django管理要編輯:在Django模型中重寫clean方法會打破其他驗證?
class Range(models.Model):
gt = models.IntegerField('Greater than')
lt = models.IntegerField('Lesser than')
def clean(self):
if self.gt >= self.lt:
raise ValidationError('Incorrect range')
的問題:雖然上面的代碼做了偉大的工作,在保證假設gt
較小比lt
,它還打破了Django開箱即用的其他基本驗證。如果,例如,我輸入的Django管理這些領域的一些非數字數據,我呈現跨越幾個屏幕調試消息:
如果我從定義中刪除overrided clean(self)
方法Range
,這基本驗證再度開始正常工作:
當然不過,現在我可以用比lt
更大gt
進入Range
秒。
我真的不知道我在做什麼錯了,因爲我雖然我只是按照Django文檔,按https://docs.djangoproject.com/en/1.9/ref/models/instances/#validating-objects
哪裏是我的錯?如何正確提供我的表單驗證?