簡體   English   中英

布爾值True / False / None

[英]Boolean True/False/None

可能是愚蠢或已經回答過的問題,對此表示抱歉。

我知道,按照定義,布爾值應該有2個值,但是我想知道在Django中存儲“第三個” None值的良好做法什么,比如說可選布爾值字段

到目前為止,我使用CharFieldChoiceField以及“ yes”,“ no”,“ no_data”,但我覺得它不是最佳選擇。 有沒有更好的方法,也許使用可以存儲true / false / null之類的特殊BooleanField?

您可以為此使用NullBooleanField

Django的已NullBooleanField這是一個子類BooleanField但其中兩個null=Trueblank=True舉行。

文檔提到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM