делает search мы выполняем один простой запрос или сразу тянем все связи а это почти всегда кроме many2one подзапросы или оду lazy в момент обращения через точку делает запрос?
Раньше было запросом отдельным. Версии с 9 внедрили кеши когда перешли на рекордсеты. Все последующие версии они оптимизируют кеши и уменьшают количество запросом в БЗ. С 14-15 версии прям большая революция была.
я не понимаю как у них кеши работают данные же меняются постоянно там кеши на секунды чтоли
Когда ты читаешь одно поле через точку - читается весь рекордсет и когда ты потом лезешь через точку к другому полю - берется из кеша. А что касается валидации кеша - то тут так себе целостность соблюдается. Если делать финансовую систему, то ни о какой гарантии в многопользовательском режиме у тебя нет. Работает правило - последний пишуший всегда прав и переписывает поверх. Вся надежда только на транзакции в рамках одной операции. А в рамках цепочки у тебя будет кирдык. В серьезных системах поэтому и ввели понятие «проводка документа» чтобы цепочку бизнесовых операций рассматривать, как единое целое
Ну есть нюансы. Там декораторы для работы с валидацией кешей
ну для работы через точку какое нибудь метод встроенный переопределилил типа dict или что то такое не смотрел внутренности?я просто свою орм написал щас дот нотация частично поддерживается но без бесконечных подзапросов
Вообще в ормах есть два самых распространенных подхода: active record и data mapper.
А про точки - это же ООП. Тем более питон :)
да-да я и говорю ```__dict__``` какой нибудь
Да не. Не обязательно так грубо :)
Обсуждают сегодня