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

Логично. Джанга не занимается вычислением аннотаций, она поручает это базе.

Скажем, в аннотации мы попросили просуммировать какое-то поле таблицы по всем записям - откуда джанге знать, какие записи в этой таблице лежат и чему у них равно это поле? Поэтому сначала добавляем в таблицу запись, а уже после просим базу посчитать нужные нам значения по актуальным данным.
Если же у вас никаких агрегатных функций не используется, а значение можно получить исходя из самого экземпляра модели, то создайте в модели свойство (property), которое будет проводить вычисление, и не напрягайте базу без надобности.
В некоторых случаях можно скомбинировать, храня в разделяемой потоками памяти актуальные агрегатные значения и вычисляя при каждой записи в базу, и выбирать их через свойство модели. Но нужно позаботиться о первичной инициализации после запуска.

1 ответов

12 просмотров

Мне казалось, что нужно как раз не создавать проперти на модели без надобности, и стараться все перекладывать на базу. В моем случае нужно посчитать количество связных объектов и не хочется делать это на каждый объект из всего кверисета. (понятное дело, что запрос на list эндпоинт модели не выгребает все 1кк записей, слава богу есть пагинация. но даже, если размер страницы 100, на каждый элемент в питоне делать математику с доп запросами к базе - плохая затея кмк)

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
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
Карта сайта