Size: a a a

Django [ru] #STAY HOME

2020 April 28

I

Ivan in Django [ru] #STAY HOME
Добавь ему сериализатор и будет счастье
источник

AF

Anton Fircak in Django [ru] #STAY HOME
а какой метод в сериализаторе надо переопределить?
источник

I

Ivan in Django [ru] #STAY HOME
А ты хочешь ModelSerializer использовать?
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Ivan
А ты хочешь ModelSerializer использовать?
скорее да, т.к. опираюсь на данные с таблицы но мне кварю(запрос на бд) надо изменить, не обычный objects.all
источник

I

Ivan in Django [ru] #STAY HOME
Тебе надо во вьюхе сделать агрегацию и потом уже передать в сериализатор
источник

I

Ivan in Django [ru] #STAY HOME
Потому что он уже работает с данными и это лишняя нагрузка будет
источник

P

Paul in Django [ru] #STAY HOME
привет, посоветуйте библиотеку для шифрования полей с поддержкой фильтров, пожалуйста.
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Ivan
Тебе надо во вьюхе сделать агрегацию и потом уже передать в сериализатор
окей, а сериализатор просто кастоынй юзать?
источник

P

Paul in Django [ru] #STAY HOME
Paul
привет, посоветуйте библиотеку для шифрования полей с поддержкой фильтров, пожалуйста.
пробовал django-cryptography, но она не поддерживает фильтры.
источник

I

Ivan in Django [ru] #STAY HOME
Anton Fircak
окей, а сериализатор просто кастоынй юзать?
Да, добавь поле для агрегации и все
источник

А

Алексей in Django [ru] #STAY HOME
Artem Gubatenko
напиши код как пытаешь сделать
F("parent_field") - это поле из основного запроса
имей ввиду: значения сами отфильтруются по связи с объектами из основного запроса. Если между ними нет связи - получишь исключение
мне, грубо говоря, нужно вот такое по смыслу
Level1.objects.prefetch_related(Prefetch('level2__level3', queryset=Level3.objects.filter(level3_field=level1_field))

и оборачивание level1_field .в F ничего не даст, я даже с Subquery не могу прикрутить че-то
источник

DT

Dan Tyan in Django [ru] #STAY HOME
кто то недавно делал тестовое

с

Model5 контейнер всех предыдущих моделей. и содержит поле "select" возможное значение - одна из букв латинского алфавита.(required=False)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Алексей
мне, грубо говоря, нужно вот такое по смыслу
Level1.objects.prefetch_related(Prefetch('level2__level3', queryset=Level3.objects.filter(level3_field=level1_field))

и оборачивание level1_field .в F ничего не даст, я даже с Subquery не могу прикрутить че-то
тебе надо достать данные с 3 уровня от первого?
Level1 -> m2m -> Level2 -> m2m -> Level3
источник

А

Алексей in Django [ru] #STAY HOME
Artem Gubatenko
тебе надо достать данные с 3 уровня от первого?
Level1 -> m2m -> Level2 -> m2m -> Level3
Level1 -> m2m -> Level2 <- o2m <- Level3
Level1 имеет временные рамки
Level3 должен выводиться весь, связанный с L2, попадающий в эти временные рамки, часть просто должно отпасть как, условно говоря, "зачеркнутое"
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Алексей
Level1 -> m2m -> Level2 <- o2m <- Level3
Level1 имеет временные рамки
Level3 должен выводиться весь, связанный с L2, попадающий в эти временные рамки, часть просто должно отпасть как, условно говоря, "зачеркнутое"
а нельзя сделать запрос не от Level1, а от Level2?
так еще может получиться в один запрос
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
* условно один запрос
источник

А

Алексей in Django [ru] #STAY HOME
Artem Gubatenko
а нельзя сделать запрос не от Level1, а от Level2?
так еще может получиться в один запрос
а это мысль, кстати, сейчас подумаю в этом ключе, спасибо
источник

А

Алексей in Django [ru] #STAY HOME
там просто есть еще L0:)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Алексей
а это мысль, кстати, сейчас подумаю в этом ключе, спасибо
можешь сделать два Prefetch() с to_attr параметром, и там уже сделать фильтрацию
данные получаешь по параметру, который указал в to_attr

может сработать)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Алексей
там просто есть еще L0:)
тогда только несколько запросов
или аннотация, если из L0 нужно одно значение
источник