Size: a a a

Django [ru] #STAY HOME

2021 May 26

AD

Alex Dem in Django [ru] #STAY HOME
reset_queries()

qs = User.objects.prefetch_related("created_deals")

for user in qs:
 for deal in user.created_deals.all():
   print (deal)


print('Queries performed:', len(connection.queries))

... (вывод пачки cвязанных объектов) ...

Queries performed: 2
источник

DT

Dan Tyan in Django [ru] #STAY HOME
да
источник

AD

Alex Dem in Django [ru] #STAY HOME
c лимитом также нет N+1

qs = User.objects.prefetch_related("created_deals")

for user in qs:
 for deal in user.created_deals.all()[:5]:
   print (deal)

Queries performed: 2
источник

DT

Dan Tyan in Django [ru] #STAY HOME
никто же не спорит =)
источник

AD

Alex Dem in Django [ru] #STAY HOME
выше мне все доказывали обратное, включая @brodskij
источник

DT

Dan Tyan in Django [ru] #STAY HOME
какие запросы?
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
хм
источник

AD

Alex Dem in Django [ru] #STAY HOME
один запрос в таблу с юзерами и один в таблу со сделками с помощью where
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну те у тебя 100 юзеров
у каждого юзера 1000 000  заказов

во втором запросе сколько выберется ?
источник

•Ǥus†สff• in Django [ru] #STAY HOME
Вопрос такой, Вьюсет я так понял создает один выход на два фронта, обязательно ли создавать класс с наследством viewsets.ModelViewSet, просто впорос такой если я допустим буду делать наследство на  generics.ListCreateAPIView у меня заюзать вьюсет не получится?
источник

AD

Alex Dem in Django [ru] #STAY HOME
вопрос по выжиранию памяти остается открытым,это да
Лимит уже работает постфактум

поэтому я и говорю, что возможно есть смысл поиграться с yield
источник

AD

Alex Dem in Django [ru] #STAY HOME
но в последнем утверждении я как раз не уверен, надо чекать :)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ты же можешь выполнить эти запросы ?
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Смысл юзать моделвьюсет и дженерик вместе? Оо
источник

•Ǥus†สff• in Django [ru] #STAY HOME
чтобы был 1 выход
источник

•Ǥus†สff• in Django [ru] #STAY HOME
=/
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Что такое выход?
источник

•Ǥus†สff• in Django [ru] #STAY HOME
юрл
источник

AD

Alex Dem in Django [ru] #STAY HOME
не понял вопрос
достать raw sql и выполнить вручную?
могу. но зачем? =)
источник

•Ǥus†สff• in Django [ru] #STAY HOME
путь, называйте как хотите... =/
источник