Size: a a a

Django [ru] #STAY HOME

2019 October 17

ЕЦ

Егор Цыплаков in Django [ru] #STAY HOME
Вопрос. В стандартном классе Permission в unique_together указано сочетание ('content_type', 'codename'), в то время как для проверки прав в ModelBackend сравниваются лишь ('content_type__app_label', 'codename'). Т.е. имеет место быть конфликты если в одном app в двух моделях будет одноименные permission. Кто сталкивался, как лучше разрулить (кастомный backend писать или наследоваться от Permission и обновить unique_together)?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Капец какой-то, перековырял доку, не могу найти:
len(Workman.objects.filter(workshop__pk=i.pk))
как заменить на человеческий запрос?
источник

D

Dmitry in Django [ru] #STAY HOME
Yegor Kowalew
Капец какой-то, перековырял доку, не могу найти:
len(Workman.objects.filter(workshop__pk=i.pk))
как заменить на человеческий запрос?
Workman.objects.filter(workshop=i).count()
источник

e

e\/gen in Django [ru] #STAY HOME
Workman.objects.filter(workshop__pk=i.pk).__len__() 🤪
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dmitry
Workman.objects.filter(workshop=i).count()
Спасибо друг!
источник

A

Andrey in Django [ru] #STAY HOME
НЕ ДЕЛАЙТЕ НИКОГДА ЛЕН НА КВЕРСЕТЫ
источник

A

Andrey in Django [ru] #STAY HOME
e\/gen
Workman.objects.filter(workshop__pk=i.pk).__len__() 🤪
а ты вообще зачем мэджик метод дёргаешь?
источник

A

Andrey in Django [ru] #STAY HOME
Workman.objects.filter(workshop__pk=i.pk).count()
источник

e

e\/gen in Django [ru] #STAY HOME
Andrey
НЕ ДЕЛАЙТЕ НИКОГДА ЛЕН НА КВЕРСЕТЫ
ну он приведёт к такому же результату
и ещё в доке пишут, что лен будет быстрее, если ты всё равно грузишь в память
источник

A

Andrey in Django [ru] #STAY HOME
e\/gen
ну он приведёт к такому же результату
и ещё в доке пишут, что лен будет быстрее, если ты всё равно грузишь в память
select count(*) лучше перебора всех записей в памяти питоном?
ну ок ок
источник

e

e\/gen in Django [ru] #STAY HOME
Andrey
select count(*) лучше перебора всех записей в памяти питоном?
ну ок ок
источник

A

Andrey in Django [ru] #STAY HOME
а ему объекты эти в памяти нужны?
источник

e

e\/gen in Django [ru] #STAY HOME
вдруг да?
источник

A

Andrey in Django [ru] #STAY HOME
вот без вдруг
источник

A

Andrey in Django [ru] #STAY HOME
найс баги в тг)
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
если кверисет уже материализован, то .count() делает тоже самое, что и len(). Если нет - то новый запрос в базу.
источник

e

e\/gen in Django [ru] #STAY HOME
если он собирает во вьюхе например в обьект, то они как раз в памяти
источник

A

Andrey in Django [ru] #STAY HOME
Andrey
найс баги в тг)
источник

A

Andrey in Django [ru] #STAY HOME
Давайте топикстартера спросим, что он делает и разойдемся, поняв кто прав, а кто нет
источник

e

e\/gen in Django [ru] #STAY HOME
не видно
я так же делаю, когда не зочу раскрывать код, но мне важен принцип работы
источник