Salve a tutti,
sto riscontrando un problema con la funzione write in un modulo che ho realizzato, e non riesco a capire dove sbaglio; per favore potreste dare un'occhiata per mettermi sulla buona strada ?
Nel file PY del nuovo modulo ho creato le due funzioni "create" e "write" per verificare alcuni campi prima di eseguire le operazioni di salvataggio; ma mentre la funzione create funziona regolarmente la write non va .....
def create(self, cr, uid, vals, context=None):
        if (vals['campo1']+vals['campo2']) != 100:
            raise osv.except_osv(_('Attenzione!'), _('La somma dei campi deve essere uguale a 100!'))
            return False
        return super(mia_tabella, self).create(cr, uid, vals, context=context)
    def write(self, cr, uid, ids, vals, context=None):
        p0=vals.get('campo1', 0)
        p1=vals.get('campo2', 0)
        ptot = p0+p1
        if (p0+p1) != 100:
            raise osv.except_osv(_('Attenzione!'), _('La somma dei campi deve essere uguale a 100! %s' %ptot))
            return False
        return super(mia_tabella, self).write(cr, uid, ids, vals, context=context)
Da quanto ho potuto capire sembra che nella funzione write i valori del record in uso della tabella non vengano passati e pertanto il risultato è sempre zero.
se all'interno della write provo le istruzioni:
    def write(self, cr, uid, ids, vals, context=None):
        if not 'campo1' in vals:
            raise osv.except_osv(_('Attenzione!'), _('Errore nel campo1'))
            return False
viene eseguita l'eccezione per qualsiasi valore di campo1
Grazie in anticipo.