【发布时间】:2016-05-10 09:35:14
【问题描述】:
我一遍又一遍地阅读 Django 文档,但我一直在为模型表单中的 clean() 方法苦苦挣扎。
这是我的models.py:
class Profile(models.Model):
number1 = models.IntegerField(blank=True, null=True)
number2 = models.IntegerField(blank=True, null=True)
class FormProfile(ModelForm):
def clean(self):
number1 = self.cleaned_data.get('number1')
number2 = self.cleaned_data.get('number2')
if number1 >= number2:
raise forms.ValidationError("number1 should not be above number2")
class Meta:
model = Profile
clean() 验证已正确完成,但问题是 number1 和 number2 的基本验证(应该是整数)不再引发任何错误。 例如,如果 number1 是整数但 number2 不是整数,则cleaned_data 字典将只包含 number1,这是正常的,因为 number2 没有经过验证,但不会引发错误。
如何让 Django 先引发基本错误,然后仅在没有引发基本错误时才执行 clean() 方法?
谢谢!
【问题讨论】:
标签: python django validation django-forms