Django在创建对象时不会引发错误而不传递必填字段

loading...


1

我有一个像这样的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)

它创建了一个注册对象而没有给我错误 You can't set appId (a non-nullable field) to None! . 这是怎么回事?为什么它没有给我错误?我做错了什么或者我错过了什么?

1回答

  • 3

    Registration对象的appID的值为''(即空字符串) .

    另外,看看the docs for the null option,你会发现缺少null选项并不意味着该字段是不可为空的 . 相反, null=True 表示空值在数据库中存储为NULL .

    如果要避免使用空字符串,请在该模型字段的验证中添加规则,或者通过表单添加规则 .

loading...

评论

暂时没有评论!