summaryrefslogtreecommitdiff
path: root/django/db/models/query_utils.py
diff options
context:
space:
mode:
authorJeremy Nauta <jeremypnauta@gmail.com>2023-07-06 20:36:48 -0600
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-09-07 06:19:08 +0200
commitf333e3513e8bdf5ffeb6eeb63021c230082e6f95 (patch)
tree45840089369287128724be0a63e3af36f3178469 /django/db/models/query_utils.py
parentcafe7266ee69f7e017ddbc0d440084ace559b04b (diff)
Fixed #31300 -- Added GeneratedField model field.
Thanks Adam Johnson and Paolo Melchiorre for reviews. Co-Authored-By: Lily Foote <code@lilyf.org> Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'django/db/models/query_utils.py')
-rw-r--r--django/db/models/query_utils.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/django/db/models/query_utils.py b/django/db/models/query_utils.py
index fcda30b3a7..9754864eef 100644
--- a/django/db/models/query_utils.py
+++ b/django/db/models/query_utils.py
@@ -198,6 +198,10 @@ class DeferredAttribute:
# might be able to reuse the already loaded value. Refs #18343.
val = self._check_parent_chain(instance)
if val is None:
+ if instance.pk is None and self.field.generated:
+ raise FieldError(
+ "Cannot read a generated field from an unsaved model."
+ )
instance.refresh_from_db(fields=[field_name])
else:
data[field_name] = val