default = 'False' не отображается в администраторе django BooleanField при добавлении нового элемента - PullRequest
2 голосов
/ 15 января 2012

1) Когда я добавляю новый элемент на сайте администратора django, все флажки устанавливаются в true, даже если по умолчанию установлено значение false.

2) Если я не касаюсь ни одного из них и сохраняюПри повторном открытии пункта для редактирования все флажки устанавливаются на соответствующие значения в соответствии со значением по умолчанию (некоторые true, некоторые false).

3) Если я сниму флажок и перепроверю некоторые из них, которые по умолчанию будут false,не имеет никакого эффекта после повторного открытия (это ложно, как будто я его не трогал).

4) Если я сниму флажок с некоторого, который должен быть истинным, его значение будет сохранено (так что позже оно станет ложным)

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')

спасибо

Ответы [ 2 ]

17 голосов
/ 15 января 2012

Вы должны передать логическое значение, а не строку.В вашем случае:

Something1 = models.BooleanField(default=False)
Something2 = models.BooleanField(default=True)
Something3 = models.BooleanField(default=False)
7 голосов
/ 15 января 2012

Для BooleanField Django ожидает логическое значение, а не строку! Строки будут оцениваться до логического значения True, которое вы можете легко проверить в консоли python:

>>> bool('True')
True
>>> bool('False')
True

Так что вы должны использовать что-то вроде Something1 = models.BooleanField(default=False).

...