Remove text-mangling of default values.

This commit is contained in:
Marc Tamlyn 2014-11-18 20:24:48 +00:00
parent c0b65150ff
commit 6b2d3f9206
3 changed files with 6 additions and 9 deletions

View File

@ -96,14 +96,6 @@ class ArrayField(Field):
value = [self.base_field.to_python(val) for val in vals]
return value
def get_default(self):
"""Overridden from the default to prevent string-mangling."""
if self.has_default():
if callable(self.default):
return self.default()
return self.default
return None
def value_to_string(self, obj):
values = []
vals = self._get_val_from_obj(obj)

View File

@ -722,7 +722,7 @@ class Field(RegisterLookupMixin):
if self.has_default():
if callable(self.default):
return self.default()
return force_text(self.default, strings_only=True)
return self.default
if (not self.empty_strings_allowed or (self.null and
not connection.features.interprets_empty_strings_as_nulls)):
return None

View File

@ -857,6 +857,11 @@ Miscellaneous
:exc:`~django.test.client.RedirectCycleError` if it detects a loop or hits a
maximum redirect limit (rather than passing silently).
* Translatable strings set as the ``default`` parameter of the field are cast
to concrete strings later, so the return type of ``Field.get_default()`` is
different in some cases. There is no change to default values which are the
result of a callable.
.. _deprecated-features-1.8:
Features deprecated in 1.8