布尔值真/假/无



这里可能是愚蠢的或已经回答过的问题,对此感到抱歉。

我知道根据定义,布尔值应该有 2 个值,但我想知道Django 中存储"第三个"None值的好做法是什么,比如说对于可选的布尔字段

到目前为止,我使用带有"是"、"否"、"no_data"的CharFieldChoiceField,但我觉得这不是最佳的。有没有更好的方法可以使用可以存储真/假/空或类似内容的特殊布尔字段?

您可以使用NullBooleanField

DjangoNullBooleanField这是一个BooleanField的子类,但null=Trueblank=True都成立。

在 django-2.1 中,文档提到null=True是允许用于BooleanField的,并且NullBooleanField可能会被弃用:

在旧版本中,此字段不允许null=True,因此您必须 请改用NullBooleanField现在不鼓励使用后者,因为 它可能会在未来版本的 Django 中被弃用。

在早期的Django版本中,不可能写BooleanField(null=True),但这种行为已经改变。

无论将使用什么,这个想法是数据库可以存储三个可能的值:TRUE(映射到True(、FALSE(映射到False(和NULL(映射到None(。

请注意,就像CharField一样,您可以设置choices,让值映射到更"敏感"的显示器上。

相关内容

  • 没有找到相关文章

最新更新