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

Всем привет! Есть функция, в которой метод декорируется @tools.self.clear_caches()('number') Далее, в методах write/create/update

этой модели есть self.invalidate_model() (17.0).
Так вот,не работает.
В версиях до 17.0 использовался self.clear_caches(), и все работало, при изменении записей метод за @ormcache вызывался повторно.
Я не понимаю, почему в 17.0 не работает self.invalidate_model(), согласно докам:

Invalidate the cache of all records of self’s model, when the cached values no longer correspond to the database values. If the parameter is given, only the given fields are invalidated from cache.

Если заменить на self.env.registry.clear_cache(), то работает как надо. Но как я понимаю, это скидывает ВСЕ кеши, а мне бы только конкретной модели, и через invalidate_model...
Никто не сталкивался?

3 ответов

54 просмотра

Странно должно работать. А что в исходниках? Есть аналогичные примеры?

Max-Lit Автор вопроса
Ivan
Странно должно работать. А что в исходниках? Есть ...

Не, не хочет. При self.invalidate_model() в логе оду пусто, а при self.env.registry.clear_cache() появляется Caches invalidated, signaling through the database: ['default']

Max Lit
Не, не хочет. При self.invalidate_model() в логе о...

Сложно гадать, не видя кода. Но выглядит так, будто рекордсет, который нужно инвалидировать, пустой. Тк в 17.0 довольно много мест, где используется эта конструкция.

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

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

а через 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
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта