我在 Django 1.5 中有以下模型:
class Person(models.Model):
name = models.CharField(max_length=50)
请注意,根据https://docs.djangoproject.com/en/dev/ref/models/fields/name.blank 默认为 False,这意味着必须指定它。
但是,我可以成功地创建一个 Person 对象,如下所示:
Person.objects.create()
请注意,未指定名称。到底是怎么回事?
好的,文档的答案是:
请注意,这与 null 不同。null 纯粹与数据库相关,而空白与验证相关。如果一个字段有空白=真,表单验证将允许输入一个空值。如果某个字段的空白=False,则该字段将是必需的。
另一个问题:
请注意,当您保存模型时,验证器不会自动运行,但如果您使用的是 ModelForm,它将在表单中包含的任何字段上运行您的验证器。
如果您不使用表单,则在保存之前调用 clean 方法是您的责任。