我从这开始:
from django.db import models
class Example(models.Model):
id = models.CharField(null=False, blank=False)
name = models.CharField(null=False, blank=False)
现在,如果我创建一个具有名称且没有id的新对象,则id将被替换为空字符串,并且对象创建将成功。
example = Example.objects.create(name="test")
我希望它返回错误,因为我指定了null=False
和blank=False
。是否有“原生”方式来做到这一点?
我正在使用Django 1.3.6。
答案 0 :(得分:1)
当然,这不是一个错误,但在文档中有详细说明。来自field options docs:
如果某个字段为空= True,则表单验证将允许输入空值。如果字段为空= False,则需要该字段。
关键是对验证的引用。当然,文档在data validation上有一个完整的选择。再次,从该页面:
请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序。
因此,正如模型验证页面所解释的那样,要将验证应用于blank = False,您应该运行模型的full_clean()
方法。
(无论如何,抱怨两个版本的旧版本中可能存在错误是没有意义的:如果您认为存在错误,则应升级到最新版本并查看是否已修复。无论如何,这不是一个错误。)