From 2a0c3da8c4a4b8faef47f03fa6d8b62c5ddce8f3 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 16 Jul 2024 11:25:29 +0200 Subject: [PATCH] Fix N+1 query found by sentry (PRETIXEU-AC2) --- src/pretix/api/serializers/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pretix/api/serializers/__init__.py b/src/pretix/api/serializers/__init__.py index 3e82178b52..dff4bbc5bf 100644 --- a/src/pretix/api/serializers/__init__.py +++ b/src/pretix/api/serializers/__init__.py @@ -21,6 +21,7 @@ # import json +from django.db.models import prefetch_related_objects from rest_framework import serializers from rest_framework.exceptions import ValidationError @@ -80,6 +81,7 @@ class SalesChannelMigrationMixin: def to_internal_value(self, data): if "sales_channels" in data: + prefetch_related_objects([self.organizer], "sales_channels") all_channels = { s.identifier for s in self.organizer.sales_channels.all() @@ -109,6 +111,7 @@ class SalesChannelMigrationMixin: def to_representation(self, value): value = super().to_representation(value) if value.get("all_sales_channels"): + prefetch_related_objects([self.organizer], "sales_channels") value["sales_channels"] = sorted([ s.identifier for s in self.organizer.sales_channels.all()