Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 Django布尔值是;“真的”;迁移后,未在ModelForm中选择_Python_Django_Django Models_Django South - Fatal编程技术网

Python Django布尔值是;“真的”;迁移后,未在ModelForm中选择

Python Django布尔值是;“真的”;迁移后,未在ModelForm中选择,python,django,django-models,django-south,Python,Django,Django Models,Django South,我正在尝试向模型中添加一行,并在Django的ModelForm中编辑该选项。我希望该字段在默认情况下为True。以下是我要添加到模型中的内容: field_name = models.BooleanField(default=1) 然后,我使用South进行迁移。一切都运行得很好,除了我的数据库中这个字段充满了“1”,它充满了“True”,而且由于某种原因,当它调出模型表单时,复选框在“True”时没有被选中。当我将数据库中的“True”更改为“1”时,它将被选中 试图在这里找到一个好的解决

我正在尝试向模型中添加一行,并在Django的ModelForm中编辑该选项。我希望该字段在默认情况下为True。以下是我要添加到模型中的内容:

field_name = models.BooleanField(default=1)
然后,我使用South进行迁移。一切都运行得很好,除了我的数据库中这个字段充满了“1”,它充满了“True”,而且由于某种原因,当它调出模型表单时,复选框在“True”时没有被选中。当我将数据库中的“True”更改为“1”时,它将被选中

试图在这里找到一个好的解决方案。看起来很奇怪。

你试过这个吗

field_name = models.BooleanField(default=True)

您使用的是什么数据库,您的数据库支持布尔字段吗?或者它是否使用0和1表示false和true的smallint字段?

另请参见:我在本地使用sqlite,这就是我看到的问题。sqlite中的列类型是什么?Python中的布尔值是
true
false
。如果它是0或1,或者别的什么,它不是布尔值。即使它是数据库中的一个
TINYINT
,Django也会在代码获取它之前将其转换为
True
False
。另外,当这个框没有在你的模型表单中被选中时,看看它是否在管理员中。它没有在谷歌管理员中被选中。但是,当我将该值更改为1时,它显示checked.sqlite不是生产数据库。你可以忽略它造成的错误。在真实的数据库(如postgresql)上测试您的应用程序,不要相信sqlite在开发环境中会产生什么。