[英]Boolean True/False/None
可能是愚蠢或已經回答過的問題,對此表示抱歉。
我知道,按照定義,布爾值應該有2個值,但是我想知道在Django中存儲“第三個” None
值的良好做法是什么,比如說可選布爾值字段 。
到目前為止,我使用CharField
或ChoiceField
以及“ yes”,“ no”,“ no_data”,但我覺得它不是最佳選擇。 有沒有更好的方法,也許使用可以存儲true / false / null之類的特殊BooleanField?
您可以為此使用NullBooleanField
。
Django的已NullBooleanField
這是一個子類BooleanField
但其中兩個null=True
和blank=True
舉行。
在django-2.1中 , 文檔提到BooleanField
允許null=True
,並且NullBooleanField
可能會被棄用:
在較早的版本中,此字段不允許
null=True
,因此您必須改為使用NullBooleanField
。 現在不建議使用后者,因為在將來的Django版本中可能會不建議使用后者 。
因此,在較早的Django版本中,不可能編寫BooleanField(null=True)
,但是這種行為已經改變。
無論使用什么,這個想法都是數據庫可以存儲三個可能的值: TRUE
(映射為True
), FALSE
(映射為False
)和NULL
(映射為None
)。
請注意,就像CharField
一樣,您可以設置choices
以使值映射在更“敏感”的顯示上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.