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

Привет, нормальная ли практика в менеджере модели юзать префетчи? Или

менеджер не должен знать про связанные поля?

9 ответов

24 просмотра

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

Dan- Автор вопроса

Я хочу написать метод, где буду ссылаться на mtm поле, но почему-то подумал что менеджер не должен знать про связи

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

Dan- Автор вопроса

Почему плохая идея? Удобное получение объектов по параметрам это разве не фильтрация?

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

Dan- Автор вопроса

Понял тебя :) Спасибо

префетчи склонны жрать память, согласен с оратором выше - стоит их юзать по месту использования - это первый момент второй момент - по контексту вопроса могу предположить, что речь о каком-то queryset с связанными таблицами - если так, то в принципе для таких вещей нужно писать логику в Queryset объекте, не в model manager model manager, IMO, должен хранить логику и методы на уровне инстанса модели, всякие хитровыдуманные методы создания/удаления инстанса, или списка инстансов обслуживаемой модели(какой-нибудь свой bulk_create с казино и куртизанками)

Dan- Автор вопроса

Да как раз таки использую QuerySet в связке с менеджером, имеется кастомное создание инстанса в менеджере, все фильтры и получение данных описаны в QuerySet, в менеджере просто создаю методы для вызова фильтраций кверисета

если есть какая-то сложная БЛ, лучше действительно создать отдельный скриптик my_awesome_business_logic, пихнуть туда функцию, а в ModelManager просто создать метод-обёртку над этой функцией модели лучше сразу держать в стерильной чистоте :)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта