Loading django/db/models/fields/__init__.py +0 −17 Original line number Diff line number Diff line Loading @@ -203,7 +203,6 @@ class Field(RegisterLookupMixin): errors = [] errors.extend(self._check_field_name()) errors.extend(self._check_choices()) errors.extend(self._check_default()) errors.extend(self._check_db_index()) errors.extend(self._check_null_allowed_for_primary_keys()) errors.extend(self._check_backend_specific_checks(**kwargs)) Loading Loading @@ -280,22 +279,6 @@ class Field(RegisterLookupMixin): else: return [] def _check_default(self): if self.has_default(): default = self.get_default() try: self.clean(default, None) except exceptions.ValidationError as messages: return [ checks.Error( "Invalid 'default' value: %s" % message, hint=None, obj=self, id='fields.E008', ) for message in messages ] return [] def _check_db_index(self): if self.db_index not in (None, True, False): return [ Loading docs/ref/checks.txt +0 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ Fields human readable name)`` tuples. * **fields.E006**: ``db_index`` must be ``None``, ``True`` or ``False``. * **fields.E007**: Primary keys must not have ``null=True``. * **fields.E008**: Invalid ``default`` value. * **fields.E100**: ``AutoField``\s must set primary_key=True. * **fields.E110**: ``BooleanField``\s do not accept null values. * **fields.E120**: ``CharField``\s must define a ``max_length`` attribute. Loading docs/releases/1.9.txt +0 −3 Original line number Diff line number Diff line Loading @@ -542,9 +542,6 @@ Models * ``connection.queries`` shows queries with substituted parameters on SQLite. * Added a new model field check that makes sure :attr:`~django.db.models.Field.default` is a valid value. * :doc:`Query expressions </ref/models/expressions>` can now be used when creating new model instances using ``save()``, ``create()``, and ``bulk_create()``. Loading tests/invalid_models_tests/test_ordinary_fields.py +0 −68 Original line number Diff line number Diff line # -*- encoding: utf-8 -*- from __future__ import unicode_literals import decimal import unittest from django.core.checks import Error, Warning as DjangoWarning Loading Loading @@ -65,22 +64,6 @@ class BooleanFieldTests(IsolatedModelsTestCase): ] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.BooleanField(default='invalid') field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: 'invalid' value must be either True or False.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class CharFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -232,22 +215,6 @@ class CharFieldTests(IsolatedModelsTestCase, TestCase): ] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.CharField(max_length=10, default=None) field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: This field cannot be null.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class DateFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -314,25 +281,6 @@ class DateFieldTests(IsolatedModelsTestCase, TestCase): def test_fix_default_value_tz(self): self.test_fix_default_value() def test_invalid_default(self): class Model(models.Model): field = models.DateField(default='invalid') field = Model._meta.get_field('field') errors = field.check() message = ( "Invalid 'default' value: 'invalid' value has an invalid date format. It must be in YYYY-MM-DD format." ) expected = [ Error( message, hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class DateTimeFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -471,22 +419,6 @@ class DecimalFieldTests(IsolatedModelsTestCase): expected = [] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.DecimalField(max_digits=3, decimal_places=2, default=decimal.Decimal('20.00')) field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: Ensure that there are no more than 3 digits in total.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class FileFieldTests(IsolatedModelsTestCase): Loading Loading
django/db/models/fields/__init__.py +0 −17 Original line number Diff line number Diff line Loading @@ -203,7 +203,6 @@ class Field(RegisterLookupMixin): errors = [] errors.extend(self._check_field_name()) errors.extend(self._check_choices()) errors.extend(self._check_default()) errors.extend(self._check_db_index()) errors.extend(self._check_null_allowed_for_primary_keys()) errors.extend(self._check_backend_specific_checks(**kwargs)) Loading Loading @@ -280,22 +279,6 @@ class Field(RegisterLookupMixin): else: return [] def _check_default(self): if self.has_default(): default = self.get_default() try: self.clean(default, None) except exceptions.ValidationError as messages: return [ checks.Error( "Invalid 'default' value: %s" % message, hint=None, obj=self, id='fields.E008', ) for message in messages ] return [] def _check_db_index(self): if self.db_index not in (None, True, False): return [ Loading
docs/ref/checks.txt +0 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ Fields human readable name)`` tuples. * **fields.E006**: ``db_index`` must be ``None``, ``True`` or ``False``. * **fields.E007**: Primary keys must not have ``null=True``. * **fields.E008**: Invalid ``default`` value. * **fields.E100**: ``AutoField``\s must set primary_key=True. * **fields.E110**: ``BooleanField``\s do not accept null values. * **fields.E120**: ``CharField``\s must define a ``max_length`` attribute. Loading
docs/releases/1.9.txt +0 −3 Original line number Diff line number Diff line Loading @@ -542,9 +542,6 @@ Models * ``connection.queries`` shows queries with substituted parameters on SQLite. * Added a new model field check that makes sure :attr:`~django.db.models.Field.default` is a valid value. * :doc:`Query expressions </ref/models/expressions>` can now be used when creating new model instances using ``save()``, ``create()``, and ``bulk_create()``. Loading
tests/invalid_models_tests/test_ordinary_fields.py +0 −68 Original line number Diff line number Diff line # -*- encoding: utf-8 -*- from __future__ import unicode_literals import decimal import unittest from django.core.checks import Error, Warning as DjangoWarning Loading Loading @@ -65,22 +64,6 @@ class BooleanFieldTests(IsolatedModelsTestCase): ] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.BooleanField(default='invalid') field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: 'invalid' value must be either True or False.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class CharFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -232,22 +215,6 @@ class CharFieldTests(IsolatedModelsTestCase, TestCase): ] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.CharField(max_length=10, default=None) field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: This field cannot be null.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class DateFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -314,25 +281,6 @@ class DateFieldTests(IsolatedModelsTestCase, TestCase): def test_fix_default_value_tz(self): self.test_fix_default_value() def test_invalid_default(self): class Model(models.Model): field = models.DateField(default='invalid') field = Model._meta.get_field('field') errors = field.check() message = ( "Invalid 'default' value: 'invalid' value has an invalid date format. It must be in YYYY-MM-DD format." ) expected = [ Error( message, hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class DateTimeFieldTests(IsolatedModelsTestCase, TestCase): Loading Loading @@ -471,22 +419,6 @@ class DecimalFieldTests(IsolatedModelsTestCase): expected = [] self.assertEqual(errors, expected) def test_invalid_default(self): class Model(models.Model): field = models.DecimalField(max_digits=3, decimal_places=2, default=decimal.Decimal('20.00')) field = Model._meta.get_field('field') errors = field.check() expected = [ Error( "Invalid 'default' value: Ensure that there are no more than 3 digits in total.", hint=None, obj=field, id='fields.E008', ), ] self.assertEqual(errors, expected) class FileFieldTests(IsolatedModelsTestCase): Loading