summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorNilesh Kumar Pahari <nileshpahari@protonmail.com>2026-01-26 00:02:29 +0530
committerNatalia <124304+nessita@users.noreply.github.com>2026-01-29 10:38:53 -0300
commit77b306ea0fea54ed440a369dc38161331602386c (patch)
tree0840154f2cb43a1f4acf036fda020b12c76d072d /django
parentb8fda9f58019cfe10c88aae36614da952f41ac31 (diff)
[6.0.x] Fixed #36847 -- Ensured auto_now_add fields are set on pre_save().
Regression in 94680437a45a71c70ca8bd2e68b72aa1e2eff337. Refs #27222. During INSERT operations, `field.pre_save()` is called to prepare values for db insertion. The `add` param must be `True` for `auto_now_add` fields to be populated. The regression commit passed `False`, causing `auto_now_add` fields to remain `None` when used by other fields, such as `upload_to` callables. Thanks Ran Benita for the report. Backport of fe189dc43ab3eddbbceefb6834893b73ca60d5ed from main.
Diffstat (limited to 'django')
-rw-r--r--django/db/models/base.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index d6aed20199..c02ca7b513 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -1153,7 +1153,9 @@ class Model(AltersData, metaclass=ModelBase):
].features.can_return_columns_from_insert
for field in insert_fields:
value = (
- getattr(self, field.attname) if raw else field.pre_save(self, False)
+ getattr(self, field.attname)
+ if raw
+ else field.pre_save(self, add=True)
)
if hasattr(value, "resolve_expression"):
if field not in returning_fields: