У меня есть несколько простых моделей Django, таких как:
class Event(models.Model):
# some stuff
class Price(models.Model):
event = models.ForgeinKey(Event)
т.е. каждый Event
имеет 1 или более Price
.
Я выбираю некоторые события, подобные этому: events = Event.objects.filter(…)
, а затем зацикливаю их for event in events:
, внутри цикла мне нужно получить доступ ко всем Price
объектам для каждого события (то есть с event.price_set
), однако делает новый запрос SQL для каждого события. У меня тысячи событий, и это вызывает тысячи запросов. Есть ли способ, которым я могу заранее заполнить price_set
для каждого события за один раз?
Я попытался добавить select_related
в QuerySet, но он не работает (я все еще вижу все запросы на панели инструментов отладки Django). Конечно, есть какой-нибудь способ сделать соединение исходного SQL-запроса, который объединит все Event
и их Prices
в одном запросе?