Как решить проблему Django N+1, когда нужно получить данные из набора объектов

Я создал функцию и написал запрос, в результате которого получается N+1 Проблема, как ее решить

код

sponsors = CustomUser.objects.filter(user_type = 2, is_deleted = False)
for s in sponsors:
    s.sponsor_detail = Sponsor.objects.get_or_create(user = s, is_deleted = False)

Было бы хорошо, если бы вы включили модели, но я полагаю, что sponsor_details является ForeignKey. В этом случае вы должны использовать select_related:

sponsors = (CustomUser.objects
                      .filter(user_type = 2, is_deleted = False)
                      .select_related('sponsor_detail'))
Вернуться на верх