Найти - Пользователи
Полная версия: Вложенные запросы
Начало » Django » Вложенные запросы
1
spec
Прочел это, там есть пример вложенного запроса:
inner_qs = Blog.objects.filter(name__contains='Cheddar')
entries = Entry.objects.filter(blog__in=inner_qs)
Принцип понятен, но в данном примере мы заранее знаем строку, по которой будем фильтровать. А если не знаем?
Например, первая таблица films:
| id | | producer_name_id | | film |
А во второй таблице producer:
| id | | producer_name |
Ну и связаны они “1 ко многим” (у одного producer несколько фильмов). И как получить имя продюсера и название фильма вложенным запросом? Мне просто интересен сам механизм, в админке если так связать, то выглядит и работает все очень красиво и быстро.
В нете нашел пример, что можно сначала objects.all() из таблицы producer сделать, а потом через id__in сделать запрос. Но ведь это неудобно - сначала мы получим огромный список producer_name, а нам нужны, например, имена тех, которые присутствуют в films.
Я понимаю, что можно не заморачиваться и делать так, как написано выше, ну а если в producer 1000000 позиций?
spec
+ во вложенном запросе может быть указан только один select.
Объясните, я не понял, как вообще получить имя producer
FishHook
produser=Produsers.objects.get(pk=1)
films=Films.objects.filter(produser=produser)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB