2016-01-15 15 views
7

Sto sviluppando un servizio Web in OpenERP 7 che crea un nuovo partner nella tabella res_partner con un metodo POST. Il mio problema è che il metodo create() mi restituisce il nuovo ID oggetto, ma il database non viene aggiornato.Metodo Openerp create() che restituisce un nuovo ID recordset ma non sta aggiornando il database

Ecco il mio codice:

@openerpweb.httprequest 
def add_partner(self, req, db, user, password, name, type, street, city, zip, phone, email, function): 
    uid = req.session.authenticate(db, user, password) 
    osv_pool = pooler.get_pool(db) 
    cr = pooler.get_db(db).cursor() 

    partner_pool = osv_pool.get('res.partner') 
    partner_dict = { 
     'name': name, 
     'type': type, 
     'street': street, 
     'city': city, 
     'zip': zip, 
     'phone': phone, 
     'email': email, 
     'function': function 
    } 

    result = partner_pool.create(cr, uid, partner_dict) 
    cr.close() 
    return str(result) 

Il metodo non mi dà alcun errore, e la richiesta di ritorno un codice 200, con il nuovo ID. Non riesco a trovare il motivo per cui il database non viene aggiornato in questo metodo di creazione

+0

restituisce un browse_record (res.partner, 9840) –

+0

L'ultimo ID di accesso nel database è 9832 e ogni volta che provo ad aggiungere un nuovo partner l'ID viene incrementato, ma nessuna voce viene aggiunta al database –

+0

Come capito, il record è stato creato e hai ottenuto l'ID del nuovo record. Ma il nuovo record non esiste nella tabella. È giusto? –

risposta

2

Ho trovato il problema. Avevo bisogno di commettere le modifiche sull'oggetto del cursore, quindi ho usato cr.commit() e aggiunto con successo la voce sul database.

+0

Grazie. In bocca al lupo ;) –

Problemi correlati