diff options
Diffstat (limited to 'django/db/models/fields/__init__.py')
| -rw-r--r-- | django/db/models/fields/__init__.py | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 26cb1bc485..81e32f2d15 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -982,13 +982,7 @@ class Field(RegisterLookupMixin): def pre_save(self, model_instance, add): """Return field's value just before saving.""" - value = getattr(model_instance, self.attname) - if not connection.features.supports_default_keyword_in_insert: - from django.db.models.expressions import DatabaseDefault - - if isinstance(value, DatabaseDefault): - return self._db_default_expression - return value + return getattr(model_instance, self.attname) def get_prep_value(self, value): """Perform preliminary non-db specific value checks and conversions.""" @@ -1030,7 +1024,9 @@ class Field(RegisterLookupMixin): if self.db_default is not NOT_PROVIDED: from django.db.models.expressions import DatabaseDefault - return DatabaseDefault + return lambda: DatabaseDefault( + self._db_default_expression, output_field=self + ) if ( not self.empty_strings_allowed |
