use*_*734 9 python sqlite django
如何NullBooleanField在Django模型中使用SQLlite3,我想存储null为该nullBoolean字段的默认值,我该怎么做?
我已将db迁移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="",)
Run Code Online (Sandbox Code Playgroud)
任何一个例子都会有很大的帮助.
Oz1*_*123 13
空字符串""不是None
>>> "" is None
False
Run Code Online (Sandbox Code Playgroud)
如果你想要默认值,None那么写:
employed = models.NullBooleanField(choices=LOCATOR_YES_NO_CHOICES,
max_length=3,
blank=True, null=True, default=None,)
Run Code Online (Sandbox Code Playgroud)
请注意,它NullBooleanFIeld已在Django 3.1. 建议使用BooleanField(null=True)。
在这种情况下;
employed = Models.BooleanField(null=True, default=None)
Run Code Online (Sandbox Code Playgroud)