我知道在djangoproject.com上有一个解释,你应该使用NullBooleanField作为Django中的一个复选框,但是,我想知道使用这样的东西是否会更好?
models.CharField(null=True, choices=(('Y','YES'),))
然后null将仅评估为未检查,yes将评估为已检查。这似乎对我来说更有意义,而不是NullBooleanField,你基本上是
models.CharField(null=True, choices=(('1','UNKNOWN'),('2','YES'),('3','NO'),))
我对NullBooleanField的解释可能(并且可能是)不正确,但是当我渲染一个松脆的表单时,它给了我一个select
框,所以不会在数据库中以这种方式表示吗?
答案 0 :(得分:1)
如果您的逻辑只需要True / False,而不是Null,那么最好使用BooleanField
而不是NullBooleanField
,default=False
。
NullBooleanField
确实是一个具有是/否/未知选择的字段。
请注意,CharField
从不保存NULL
,但始终为空字符串,因此null=True
对CharField
无效。