我有一个像这样的Django模型:
class Registration(models.Model):
appId =models.CharField(max_length = 100)
registeredUser = models.ForeignKey('auth.User', null=True, blank=True)
当我使用python manage.py shell访问Django Shell界面并尝试创建一个Registration对象而不传递appId字段(这是一个必填字段),如下所示:
Registration.objects.create(registeredUser = userobject)
它创建了一个Registration对象而没有给我错误你不能将appId(一个不可空的字段)设置为None!。怎么会发生这种情况?为什么它不会给我错误?我做错了或者我错过了什么?
答案 0 :(得分:3)
Registration对象的appID的值为''(即空字符串)。
另外,看看the docs for the null option,您会发现缺少null选项并不意味着该字段不可为空。相反,null=True
表示空值在数据库中存储为NULL。
如果要避免使用空字符串,请在该模型字段的验证中添加规则,或者通过表单添加规则。