170 похожих чатов

Скажите как лучше написать запрос? institution в filter положить или

в prefetch_related?

16 ответов

24 просмотра
Erik-Arakelian Автор вопроса

institution - это поле в модели ManyToMany... Если institution в filter, то это institution = Institution.objects.get(domain=domain)

это же разное делает

Erik-Arakelian Автор вопроса
Denis Pobedrya
это же разное делает

можете пояснить. Я так понимаю если я использую в prefetch, то я минимизирую запросы в БД. Institution - это поле в модели ManyToMany... В filter я фильтрую через queryset - Institution.objects.get(domain=domain). Или откуда prefetch узнать что именно эти добавки (additives) относятся к данному institution у которого domain=domain

Erik Arakelian
можете пояснить. Я так понимаю если я использую в...

ну, префетч на выборку не влияет, это чисто для оптимизации шаг

Смотря что нужно найти, если пересечение множеств, то да, intersection

так они же разные. Префеч это фича/костыль джанги. Он наполняет внутренний кэш запроса.

Erik-Arakelian Автор вопроса
Denis Pobedrya
Смотря что нужно найти, если пересечение множеств,...

set не сработает со списками и словарями в них. Как то можно не через for сравнить данные друг с другом?

Erik Arakelian
screenshot set не сработает со списками и словарями в них. К...

а что хочется сделать-то в итоге с данными?

Erik-Arakelian Автор вопроса
Denis Pobedrya
а что хочется сделать-то в итоге с данными?

ну смотрите, мне с фронта приходит массив и я хочу проверить схожесть данных с тем что есть в бд. Если все плохо, то я исправляю на данные из бд. Потом свой массив для сессии корзины формирую.

Erik Arakelian
ну смотрите, мне с фронта приходит массив и я хочу...

хм, а зачем шаг проверки, не лучше ли брать правильные данные сразу из бд?

Erik-Arakelian Автор вопроса
Denis Pobedrya
хм, а зачем шаг проверки, не лучше ли брать правил...

ну там все непросто. И проверка эта нужна для того, чтобы если какой-то мамкин хакер захочет изменить через js цену у товара или его добавок. Вот я на сервере проверяю это

Erik Arakelian
ну там все непросто. И проверка эта нужна для тог...

я имею в виду вообще не обращать внимание на цену пришедшую с фронта, а брать ту, которая в бд

Создай список с именами и потом filter(<smth>__title__in=<names_list>)

Erik-Arakelian Автор вопроса
Arseny
Создай список с именами и потом filter(<smth>__tit...

мог бы, но по-моему это лишняя движуха в логике вьюшки. Ищу более грамотный вариант, чтобы избежать циклов вложенных. Не исключено, что в итоге забью и через цикл оставлю проверку

Erik Arakelian
мог бы, но по-моему это лишняя движуха в логике вь...

Ага, а получать ненужные данные это не лишняя логика? Представь что у тебя 1000 элементов и с нужным тебе title будет 9xx элементом. Да и это не такая огромная логика, что бы не хранить её во вьюхе, как мне кажется(я вообще все такие get_smth вынес в сервисный слой в своём пет-проекте)

Erik Arakelian
мог бы, но по-моему это лишняя движуха в логике вь...

Так, стоп. Может быть ты меня не так понял? Я про фильтр queryset, а не фильтровать после запроса в базу

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
вот не понимаю, зачем вообще лезть в осдев, если даже базы не знаешь? хотя бы про загрузку, форматы файлов железо какое-никакое. Ну реально, даже зная работу железа, с условны...
Mixail Frolov
7
Карта сайта