summaryrefslogtreecommitdiff
path: root/django/core/serializers/python.py
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-06-04 20:49:07 +0200
committerGitHub <noreply@github.com>2023-06-04 20:49:07 +0200
commitf9936deed1ff13b20e18bd9ca2b0750b52706b6c (patch)
treeb77d26889c2f7092261625f7e7fbefeb9b5bd7a2 /django/core/serializers/python.py
parent1136aa5005f0ae70fea12796b7e37d6f027b9263 (diff)
Fixed #34620 -- Fixed serialization crash on m2m fields without natural keys when base querysets use select_related().
Regression in 19e0587ee596debf77540d6a08ccb6507e60b6a7. Thanks Martin Svoboda for the report.
Diffstat (limited to 'django/core/serializers/python.py')
-rw-r--r--django/core/serializers/python.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py
index 36048601af..0dc504aa34 100644
--- a/django/core/serializers/python.py
+++ b/django/core/serializers/python.py
@@ -79,7 +79,9 @@ class Serializer(base.Serializer):
return self._value_from_field(value, value._meta.pk)
def queryset_iterator(obj, field):
- return getattr(obj, field.name).only("pk").iterator()
+ return (
+ getattr(obj, field.name).select_related().only("pk").iterator()
+ )
m2m_iter = getattr(obj, "_prefetched_objects_cache", {}).get(
field.name,