From f9936deed1ff13b20e18bd9ca2b0750b52706b6c Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Sun, 4 Jun 2023 20:49:07 +0200 Subject: 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. --- django/core/serializers/python.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'django/core/serializers/python.py') 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, -- cgit v1.3