Django中的复选框 - 什么是最佳做法?

时间:2015-01-21 18:47:29

标签: django

我知道在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框,所以不会在数据库中以这种方式表示吗?

1 个答案:

答案 0 :(得分:1)

如果您的逻辑只需要True / False,而不是Null,那么最好使用BooleanField而不是NullBooleanFielddefault=False

NullBooleanField确实是一个具有是/否/未知选择的字段。

请注意,CharField从不保存NULL,但始终为空字符串,因此null=TrueCharField无效。