我正在使用 django 1.5.4
这是我面临的问题的一个最小示例。
该模型:
#models.py
from django.db import models
class SampleModel(models.Model):
spam = models.BooleanField()
表格:
#forms.py
from django.forms import ModelForm
from .models import SampleModel
class SampleModelForm(ModelForm):
class Meta:
model = SampleModel
fields = ('spam', )
从 django 外壳:
>>> data = {} #intentionally blank
>>> form = SampleModelForm(data)
>>> is_valid = form.is_valid() #is_valid is True
>>> form.save() # model instance is created with "spam" set to False by default.
我是否错误地验证了表格?form.is_valid
正确验证其他类型的字段。文档表明默认情况下所有字段都是必需的,但在不存在布尔字段键的情况下is_valid
返回。True
我需要确保输入数据中存在布尔字段。截至目前,我正在手动检查该字段是否存在并且类型为bool
. 您认为我应该覆盖form.is_valid
并添加此检查,以便它也可以用于其他模型吗?