2017-11-03 1 views
0

Ich brauche mehr als einen Partner eines Projekts in Projektform. Das ist, was ich versucht habe:Wie fügt man dem projects.project Modell mehrere Partner hinzu?

class project(models.Model): 
    _inherit = 'project.project' 
    partner_id = fields.Many2many('res.partner', 
     string='Customer', 
     default=_get_default_partner) 

Installation fehlgeschlagen mit Fehler "unbekannte Funktion _get_default_partner". Die gesamte Funktion existiert im geerbten Modell project.project.

Die zweite Version ändert sich nicht. Nach isttallation ging ich in Einstellungen> Datenbank> Module> Projekt> project.project und sah die partner_id noch many2one ist:

class project(models.Model): 
    _inherit = 'project.project' 
    partner_id = fields.Many2many('res.partner', 
     string='Customer') 
+0

Der letztere Code funktioniert für mich, nach odoo Neustart. – uBaH

Antwort

0

Sie können eine Lambda-Funktion verwenden, um den Standardwert wie folgt zu vergeben:

partner_id = fields.Char(
    string='Customer', 
    default=lambda self: self._get_default_partner(), 
) 

@api.model 
def _get_default_partner(self): 

    # override the original method 

Eigentlich sollten Sie ein anderes Feld many2many erstellen. Anstatt zu versuchen, das many2one in ein many2many Feld umzuwandeln. Also würde ich so etwas tun:

class ProjectProject(models.Model): 
    _inherit = 'project.project' 

    partner_id = fields.Many2one(
     invisible=True 
    ) 

    partner_ids = fields.Many2many(
     string='Customer', 
     comodel_name='res.partner', 
     default=lambda self: self._get_default_partner_ids(), 
    ) 

    @api.model 
    def _get_default_partner_ids(self): 

     # [...] 
+0

Sie haben Recht, die bestehende Geschäftslogik mit Fehlern zu ändern. – uBaH

+0

Also stimme meine Antwort ab oder markiere sie als korrekt, wenn es nützlich war, danke – ChesuCR

Verwandte Themen