2012-01-15 4 views
2

1)django管理サイトで新しい項目を追加すると、デフォルトがfalseに設定されていてもすべてのチェックボックスがtrueに設定されます。default = 'False'はdjango admin BooleanFieldに反映されません。新しい項目を追加するとき

2)アイテムに触れずにアイテムを保存した場合、編集し直すと、すべてのチェックボックスがデフォルト(適切な場合もあれば偽)の値に設定されます。

3)デフォルトで偽であるべきもののチェックを外して再チェックした場合、再オープンしても効果はありません(私はそれに触れていないので、偽です)。私は、後に期待どおりに正確に保存されている値を編集するとき

4)私は真であるべきいくつかのチェックを外すと、それは値が保存されます(それは))、後

5を偽です。不具合はありません。

これまでに同じような不具合が発生しましたか?問題はどこにあったのですか?

(ジャンゴ1.3.1、Pythonの2.6.6、sqlite3の上)

Something1 = models.BooleanField(default='False') 
Something2 = models.BooleanField(default='True') 
Something3 = models.BooleanField(default='False') 

おかげ

+5

['True'と' False'](http://docs.python.org/library/constants.html#False)は、文字列ではなく定数に組み込まれています。 –

答えて

17

あなたはブール値ではなく、文字列を渡す必要があります。あなたのケースでは:BooleanFieldジャンゴのために

Something1 = models.BooleanField(default=False) 
Something2 = models.BooleanField(default=True) 
Something3 = models.BooleanField(default=False) 
7

はブール値ではなく、文字列を期待しています!文字列は、あなたが簡単にPythonのコンソールで確認することができTrueのブール値に評価されます。

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

ですから、Something1 = models.BooleanField(default=False)のようなものを使用する必要があります。

関連する問題