【发布时间】:2013-10-20 03:12:28
【问题描述】:
我正在使用 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 shell:
>>> 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 正确验证其他类型的字段。
docs 表示默认情况下所有字段都是必需的,但 is_valid 返回 True 而没有布尔字段键。
我需要确保输入数据中存在布尔字段。
截至目前,我正在手动检查该字段是否存在并且类型为bool。您认为我应该覆盖form.is_valid 并添加此检查,以便它也可以用于其他模型吗?
【问题讨论】:
标签: django validation django-forms