我需要以项目形式拥有一个项目的多个合作伙伴。多数民众赞成我尝试过的:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer',
default=_get_default_partner)
安装失败,错误为“unknown function _get_default_partner”。通过该函数存在于继承的模型project.project中。
第二个版本没有变化。在isttallation之后我去了设置>数据库>模块>项目> project.project 并且看到partner_id仍然是很多人:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer')
答案 0 :(得分:0)
您可以使用lambda函数分配默认值,如下所示:
partner_id = fields.Char(
string='Customer',
default=lambda self: self._get_default_partner(),
)
@api.model
def _get_default_partner(self):
# override the original method
实际上,您应该创建另一个不同的many2many
字段。而不是尝试将many2one
转换为many2many
字段。所以我会做这样的事情:
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):
# [...]