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
Unknown User5w ago
Message Not Public
Sign In & Join Server To View
Francesco Ballerini
Grazie !! 😃
Unknown User
Unknown User4w ago
Message Not Public
Sign In & Join Server To View
Francesco Ballerini
@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 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 è attendibile
No description
Unknown User
Unknown User4w ago
Message Not Public
Sign In & Join Server To View
Francesco Ballerini
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
Unknown User4w ago
Message Not Public
Sign In & Join Server To View
Francesco Ballerini
So che probabilmente è una cosa ovvia ma non avevo idea che il debugger funzionasse in questo modo forzando il calcolo dei campi 😅 Grazie ancora 😃

Did you find this page helpful?