添加新项目时,django admin BooleanField中不会反映default ='False'

too*_*ken 2 django field django-models django-admin

1)当我在django管理站点中添加新项目时,即使default设置为false,所有复选框也都设置为true.

2)如果我没有触摸任何一个并保存该项目,当我重新打开它进行编辑时,所有复选框都会根据默认值设置为适当的值(有些是真的,有些是假的).

3)如果我取消选中并重新检查默认情况下应该为假的某些内容,则重新打开后它没有任何效果(它是假的,就像我没有触摸它一样).

4)如果我取消选中一些应该为true的值,那么它的值就会被保存(所以以后它是假的)

5)当我稍后编辑它们时,它们的保存完全符合预期.没有故障.

你遇到过类似的故障吗?问题出在哪里?

(关于django 1.3.1,python 2.6.6,sqlite3)

Something1 = models.BooleanField(default='False')
Something2 = models.BooleanField(default='True')
Something3 = models.BooleanField(default='False')
Run Code Online (Sandbox Code Playgroud)

谢谢

dan*_*son 17

你应该传递一个布尔值,而不是一个字符串.在你的情况下:

Something1 = models.BooleanField(default=False)
Something2 = models.BooleanField(default=True)
Something3 = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)


Ber*_*ant 7

因为BooleanFieldDjango期望一个布尔值,而不是一个字符串!字符串将被评估为布尔值True,您可以在python控制台中轻松验证:

>>> bool('True')
True
>>> bool('False')
True
Run Code Online (Sandbox Code Playgroud)

所以你必须使用类似的东西Something1 = models.BooleanField(default=False).