Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将null作为默认值存储在null布尔字段上_Python_Django_Sqlite - Fatal编程技术网

Python 将null作为默认值存储在null布尔字段上

Python 将null作为默认值存储在null布尔字段上,python,django,sqlite,Python,Django,Sqlite,如何在带有SQLlite3的Django模型中使用NullBooleanField, 我想将null存储为nullBoolean字段的默认值,我该怎么做 我已将db从BooleanField迁移到NullBooleanField,但它仍将False存储为默认值 代码中的用法如下: LOCATOR_YES_NO_CHOICES = ((None,''), (True,'Yes'), (False, 'No')) employed = models.NullBooleanField(choices=

如何在带有
SQLlite3
Django
模型中使用
NullBooleanField
, 我想将
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="",)
任何例子都会有很大帮助。

空字符串
不是
None

>>> "" is None
False
如果希望默认值为
None
,请编写:

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

请注意,
django3.1
中的
NullBooleanFIeld
。建议使用
布尔字段(null=True)

在这种情况下

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

在设置default=None之后,我得到了“IntegrityError at/intraction/locator/”,它告诉我:“intraction_locator.employed可能不为NULL”,但该字段被定义为NullBooleanField。您是否在数据库中进行了检查,employed字段是否接受NULL?否则,您可能需要更改表。更改模型中的字段类型不会自动更改数据库中的表。您需要删除它并再次运行
syncdb
,或者使用类似
south
的工具进行自动架构迁移。@user3269734,您可能需要手动更改数据库架构。South做得很好,但有时会漏掉一些东西。请注意,对于NullBooleanField,默认值是
blank=True,null=True
,因此不需要指定它。