Пишу несколько необработанных SQL-запросов, заметив, насколько неэффективны некоторые встроенные запросы Django. Я пытаюсь просмотреть результаты QuerySet
и сгруппировать их по категориям (мне известен тег шаблона regroup
, у меня это не работает - мне нужно иметь возможность доступа к отдельным группам независимо) , Вот мой код:
m = Media.objects.raw('SELECT * FROM table') # query simplified for sake of example
media_items = {'aim-icons' : [], 'banners' : [], 'hi-res-photos' : [], 'photos' : [], 'print-ads' : [], 'videos' : [], 'wallpapers' : [] }
for item in m:
media_items[item.type_slug].append(item)
Это дает мне то, что я хочу (например, список, к которому я могу получить доступ, например media_items['wallpapers']
), но он выполняет запрос к базе данных для каждой итерации, чтобы получить поле type_slug
. Я попытался добавить m = list(m)
перед циклом, без эффекта.
Может кто-нибудь помочь мне здесь? Кажется, это должно быть просто.
Спасибо,
Matt