To ensure that a model BooleanField has an explicit value set (and since it's

not required, by default), set the default properly in the constructor.

This code can be simplified when/if we resolve the
BooleanField/NullBooleanField overlap, but the current stuff is backwards
compatible. This would previously cause SQL errors on PostgreSQL and
interesting failures in subtle ways on MySQL and SQLite.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8050 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-07-22 04:49:32 +00:00
parent c51d000c37
commit 6ef47cfe5f
1 changed files with 2 additions and 0 deletions

View File

@ -477,6 +477,8 @@ class AutoField(Field):
class BooleanField(Field): class BooleanField(Field):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
kwargs['blank'] = True kwargs['blank'] = True
if 'default' not in kwargs and not kwargs.get('null'):
kwargs['default'] = False
Field.__init__(self, *args, **kwargs) Field.__init__(self, *args, **kwargs)
def get_internal_type(self): def get_internal_type(self):