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: create di project.project

create di project.project 1 Anno 11 Mesi fa #27485

  • G.Conte
  • Avatar di G.Conte
  • Offline
  • Platinum Boarder
  • Messaggi: 344
  • Ringraziamenti ricevuti 40
  • Karma: 0
Ciao a tutti, stavo provando a implementare la funziona create dei progetti:
@api.model
    def create(self, vals):
            partner_id = vals['partner_id']
            if partner_id:
                partner = self.env['res.partner']
                partner_mio = partner.search([('id', '=', partner_id)])
                if partner_mio.city:
                    partner_nome = u" %s - %s" % (partner_mio.name, partner_mio.city)
                else:
                    partner_nome = u" %s" % (partner_mio.name)
            else:
                partner_nome = ' '
            vals['name'] = self.env['ir.sequence'].next_by_code('project.project') + ' ' \
                           + vals['name'] + ' ' \
                           + partner_nome
            return super(ProjectProject, self).create(vals)

In questo modo aggiungo al nome del progetto una sequenza che ho creato, il nome cliente e la città.
Questo diciamo che funziona correttamente.
Il mio problema è se vado nei contratti e da li creo un contratto con la spunta attività (quindi prova a creare il progetto), mi da errore:
partner_id = vals
KeyError: 'partner_id'
Ho provato ad aggiungere :
if 'partner_id' in vals.keys():
come prima riga ma mi riporta questo errore:
in <lambda>
@api.returns('self', lambda value: value.id)
AttributeError: 'NoneType' object has no attribute 'id'.
Qualcuno saprebbe dirmi dove sbaglio e come risolvere? Ringrazio come sempre in anticipo tutti
Dinamiche Aziendali
www.dinamicheaziendali.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

create di project.project 1 Anno 11 Mesi fa #27486

  • Vinicius05
  • Avatar di Vinicius05
  • Offline
  • Gold Boarder
  • Messaggi: 194
  • Ringraziamenti ricevuti 58
  • Karma: 0
partner_id è una relazione, per cui a primo acchito secondo me è:
partner_id.id
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

create di project.project 1 Anno 11 Mesi fa #27488

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Credo, immagino ... insomma non ne son sicuro ... che la cosa sia un pelino più' complicata di come esposta.

La create se non ricordo male viene invocata al primo utilizzo dell'oggetto, quindi quando questo neanche esiste sul db .... i suoi valori son nulli o quelli di default. Il dict (vals) dovrebbe contenere solo i valori effettivamente valorizzati ... ovvero i default.

RIPETO ... non ne sono sicuro, forse HO DETTO CAZZATE ... un controllo su cosa contiene il dict toglie ogni dubbio.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

create di project.project 1 Anno 11 Mesi fa #27489

  • G.Conte
  • Avatar di G.Conte
  • Offline
  • Platinum Boarder
  • Messaggi: 344
  • Ringraziamenti ricevuti 40
  • Karma: 0
Grazie ad entrambi, ho controllato il dict, e quando sto nei contratti ha solo i valori di default quindi non ha partner_id.
Alla fine ho risolto mettendo il return sotto l' if 'partner_id' in vals.keys().
Dinamiche Aziendali
www.dinamicheaziendali.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.132 secondi

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

Protected by R Antispam