将null保存为默认值againt Null boolean field

use*_*734 9 python sqlite django

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

我已将db迁移BooleanFieldNullBooleanField,但它仍然存储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,默认值为`blank = True,null = True`,因此您无需指定该值。https://docs.djangoproject.com/zh-CN/2.0/_modules/django/db/models/fields/#NullBooleanField (3认同)

Den*_*ott 6

请注意,它NullBooleanFIeldDjango 3.1. 建议使用BooleanField(null=True)

在这种情况下;

employed = Models.BooleanField(null=True, default=None)
Run Code Online (Sandbox Code Playgroud)