Ticket #15124: 15124.django15.diff

File 15124.django15.diff, 4.4 KB (added by oinopion, 3 years ago)

Updated patch to current effort (1.5)

  • django/contrib/flatpages/models.py

    diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py
    index 42ec155..18ce335 100644
    a b class FlatPage(models.Model): 
    99    url = models.CharField(_('URL'), max_length=100, db_index=True)
    1010    title = models.CharField(_('title'), max_length=200)
    1111    content = models.TextField(_('content'), blank=True)
    12     enable_comments = models.BooleanField(_('enable comments'))
     12    enable_comments = models.BooleanField(_('enable comments'), default=False)
    1313    template_name = models.CharField(_('template name'), max_length=70, blank=True,
    1414        help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."))
    15     registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page."))
     15    registration_required = models.BooleanField(_('registration required'),
     16        help_text=_("If this is checked, only logged-in users will be able to view the page."),
     17        default=False)
    1618    sites = models.ManyToManyField(Site)
    1719
    1820    class Meta:
  • django/db/models/fields/__init__.py

    diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
    index 9db76a6..99bf2fe 100644
    a b class BooleanField(Field): 
    568568
    569569    def __init__(self, *args, **kwargs):
    570570        kwargs['blank'] = True
    571         if 'default' not in kwargs and not kwargs.get('null'):
    572             kwargs['default'] = False
    573571        Field.__init__(self, *args, **kwargs)
    574572
    575573    def get_internal_type(self):
  • docs/ref/models/fields.txt

    diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt
    index 23dcf4b..6d411d3 100644
    a b The admin represents this as a checkbox. 
    351351If you need to accept :attr:`~Field.null` values then use
    352352:class:`NullBooleanField` instead.
    353353
     354.. versionchanged:: 1.5
     355    In previous versions of Django ``BooleanFields`` would have an implicit
     356    default value of ``False``. Now it defaults to ``None`` if there is
     357    no default specified.
     358
    354359``CharField``
    355360-------------
    356361
  • docs/releases/1.5.txt

    diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt
    index 33f5003..7062240 100644
    a b our own copy of ``simplejson``. You can safely change any use of 
    160160
    161161The :func:`~django.utils.itercompat.product` function has been deprecated. Use
    162162the built-in :func:`itertools.product` instead.
     163
     164
     165``BooleanField`` set to None when default value not specified
     166~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     167
     168In previous versions of Django, a model's ``BooleanField`` would get ``False``
     169value when no default was provided. Now ``None`` value is used.
  • tests/regressiontests/model_fields/tests.py

    diff --git a/tests/regressiontests/model_fields/tests.py b/tests/regressiontests/model_fields/tests.py
    index 5d3d42e..a270235 100644
    a b class BooleanFieldTests(unittest.TestCase): 
    211211            select={'string_col': 'string'})[0]
    212212        self.assertFalse(isinstance(b5.pk, bool))
    213213
     214    def test_null_default(self):
     215        # http://code.djangoproject.com/ticket/15124
     216        from django.db import IntegrityError
     217        b = BooleanModel()
     218        self.assertEqual(b.bfield, None)
     219        self.assertRaises(IntegrityError, b.save)
     220
    214221class ChoicesTests(test.TestCase):
    215222    def test_choices_and_field_display(self):
    216223        """
  • tests/regressiontests/model_inheritance_regress/tests.py

    diff --git a/tests/regressiontests/model_inheritance_regress/tests.py b/tests/regressiontests/model_inheritance_regress/tests.py
    index 6855d70..80ffec9 100644
    a b class ModelInheritanceTest(TestCase): 
    180180        """
    181181        Regression test for #6755
    182182        """
    183         r = Restaurant(serves_pizza=False)
     183        r = Restaurant(serves_pizza=False, serves_hot_dogs=False)
    184184        r.save()
    185185        self.assertEqual(r.id, r.place_ptr_id)
    186186        orig_id = r.id
    187         r = Restaurant(place_ptr_id=orig_id, serves_pizza=True)
     187        r = Restaurant(place_ptr_id=orig_id, serves_pizza=True, serves_hot_dogs=False)
    188188        r.save()
    189189        self.assertEqual(r.id, orig_id)
    190190        self.assertEqual(r.id, r.place_ptr_id)
Back to Top