将null作为默认值存储为Null布尔字段

时间:2014-02-06 07:21:45

标签: python django sqlite

如何在NullBooleanField模型Django中使用SQLlite3, 我想将null存储为nullBoolean字段的默认值,我该怎么做?

我已将数据库从BooleanField迁移到NullBooleanField,但它仍然存储False作为默认值。

代码中的用法如下:

LOCATOR_YES_NO_CHOICES = ((None,''), (True,'Yes'), (False, 'No'))
employed = models.NullBooleanField(choices=LOCATOR_YES_NO_CHOICES,
                                max_length=3,
                                blank=True, null=True, default="",)

任何一个例子都会有很大的帮助。

2 个答案:

答案 0 :(得分:12)

空字符串""不是None

>>> "" is None
False

如果您希望默认值为None,请写:

employed = models.NullBooleanField(choices=LOCATOR_YES_NO_CHOICES,
                                max_length=3,
                                blank=True, null=True, default=None,)

答案 1 :(得分:0)

请注意,NullBooleanFIeldDjango 3.1 中是 deprecated。建议使用BooleanField(null=True)

在这种情况下;

employed = Models.BooleanField(null=True, default=null)