Ciao Emanuele, faccio un pò fatica ad
Ciao Emanuele, faccio un pò fatica ad entrare nel caso specifico ma with_prefetch è quello che avevo letto tempo fa in effetti.. quello che mi chiedevo è se si potesse proprio bypassare il fetch del campo "di default" durante l'accesso al record se non esplicitamente richiesto..
Se non è possibile farlo comunque, mi hai già dato un paio di buone dritte: mi è già capitato di fare piccole ottimizzazioni spostando il prefetch dei dati necessari fuori dal loop ma non avevo mai valutato read_group come opzione ulteriore per gestire il prefetch.
8 Replies
Unknown User•5w ago
Message Not Public
Sign In & Join Server To View
Grazie !! 😃
Unknown User•4w ago
Message Not Public
Sign In & Join Server To View
@SirAionTech @Emanuele (emi) Innanzitutto grazie 1000 per le delucidazioni, sono riuscito a verificare solo adesso (chiedo scusa avevo chiesto in merito ma non avevo verificato prima).
Ho messo un bottone che mi fa un semplice fetch di tutti i records del modello, quello che si vede nello screenshot è uno dei tanti records fetchati che ho "esploso" per visualizzarne i campi.. non sono sicuro al 100% che sia un test attendibile, nel caso mi correggerete ma credo che il campo
Ho messo un bottone che mi fa un semplice fetch di tutti i records del modello, quello che si vede nello screenshot è uno dei tanti records fetchati che ho "esploso" per visualizzarne i campi.. non sono sicuro al 100% che sia un test attendibile, nel caso mi correggerete ma credo che il campo
totale_economico
non dovrebbe comparire tra i campi del record stando a quello che dite ..
Se vi chiedete come mai il campo ha compute_sudo=True
è perché avevo fatto la domanda anche a chat gpt, sinceramente non mi fidavo della risposta ma aveva risposto sostanzialmente la stessa cosa, cioè che se il campo non è stored non viene fetchato ma che è anche necessario aggiungere compute_sudo
. Ho fatto il test sia col compute_sudo
che in condizioni normali ma mi sembra che il field venga comunque fetchato.
In realtà non è un grosso problema perché ho rivisto alcuni aspetti dell'implementazione e la query non è più un problema, a questo punto è solo per conoscenza 🙂
Tra l'altro prima o poi devo andarmi a leggere la classe models e la classe fields.. me lo riprometto spesso ma ancora non l'ho mai fatto.. 🙂
Comunque mi sembra che il field sebbene non-stored venga fetchato, però ripeto, non so se il test che ho fatto è attendibileUnknown User•4w ago
Message Not Public
Sign In & Join Server To View
Ho verificato ora con
def button_test(self):
recs = self.env["modello.custom"].search([])
for rec in recs:
rec_cache = rec.env.cache._data
confermo che mettendo store=True il field è in cache, mentre con store=False il campo totale_economico
non è in cache !! 😃
Questo dovrebbe essere attendibile, grazie 1000 !Unknown User•4w ago
Message Not Public
Sign In & Join Server To View
So che probabilmente è una cosa ovvia ma non avevo idea che il debugger funzionasse in questo modo forzando il calcolo dei campi 😅 Grazie ancora 😃