1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #25417 -- Added a field check for invalid default values.

This commit is contained in:
Simon Charette
2015-09-17 11:15:43 -04:00
parent 75ed590032
commit 71ebcb85b9
4 changed files with 89 additions and 0 deletions

View File

@@ -207,6 +207,7 @@ 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))
@@ -283,6 +284,22 @@ 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 [