如何在project.project模型中添加多个合作伙伴?
How to add several partners to the project.project model?
我需要一个项目的合作伙伴不止一个。那就是我试过的:
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.
第二版没有改动。安装完成后,我转到 Settings > database > modules > project > project.project 并看到 partner_id 仍然是 many2one:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer')
您可以使用 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):
# [...]
我需要一个项目的合作伙伴不止一个。那就是我试过的:
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.
第二版没有改动。安装完成后,我转到 Settings > database > modules > project > project.project 并看到 partner_id 仍然是 many2one:
class project(models.Model):
_inherit = 'project.project'
partner_id = fields.Many2many('res.partner',
string='Customer')
您可以使用 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):
# [...]