Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: Computed field calcolato o invariato

Computed field calcolato o invariato 3 Anni 10 Mesi fa #20305

  • cmarinozzi
  • Avatar di cmarinozzi
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Karma: 0
Ciao,
come si può fare in modo che un campo calcolato venga effettivamente calcolato a fronte di una qualche condizione o altrimenti preservi il valore precedente? Il campo è anche editabile all'utente
myfield = fields.Float(compute="_mygetcompute", inverse="_mysetcompute",store=True)

@api.one
@api.depends(...)
def _mygetcompute(self):
    print self.myfield #is False
    if condition :
        self.myfield = 5

In pratica mi succede che il campo viene sempre azzerato, anzichè preservare il valore precedente, quando la condizione non è vera.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Computed field calcolato o invariato 3 Anni 9 Mesi fa #20443

  • LeartS
  • Avatar di LeartS
  • Offline
  • Expert Boarder
  • Messaggi: 95
  • Ringraziamenti ricevuti 24
  • Karma: 3
Non so se sia possibile, temo che una volta che la compute function viene chiamata (perchè una delle dipendenze è stata modificata) il valore salvato venga considerato invalido e quindi devi assegnarli te un nuovo valore.

Puoi fare un esempio pratico del tuo caso? Concettualmente un campo funzione dovrebbe essere calcolato e dipendere solo da altri valori/campi quindi mi suona il strano che tu voglia lasciare il vecchio valore. Comunque potresti provare, se la condizione è falsa, a fare una query diretta al database per ottenere il valore del campo attuale (senza passare dall'orm altrimenti ti restituirà il valore cachato che potrebbe essere nullo o differente) e riassegnarlo.
Ultima modifica: 3 Anni 9 Mesi fa da LeartS.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.138 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam