I need to have more then one partner of a project in project form. Thats what I've tried:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer',
default=_get_default_partner)
Install failed with error "unknown function _get_default_partner". Allthrough the function exists in inherited model project.project.
The second version makes no change. After isttallation I went to Settings > database > modules > project > project.project and saw the partner_id is still many2one:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer')
You can use a lambda function to assign the default value like this:
partner_id = fields.Char(
string='Customer',
default=lambda self: self._get_default_partner(),
)
@api.model
def _get_default_partner(self):
# override the original method
Actually, you should create another different many2many
field. Instead of trying to convert the many2one
to a many2many
field. So I would do something like this:
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):
# [...]