Odoo 12:如何根据相关领域添加域名?
Odoo 12 : how to add domain depending on related field?
我有两个 many2many
相关字段,我们称它们为 field_one
和 field_two
以及一个 many2many
,我们称它们为 field_three
。
三个字段的定义如下:
field_one = fields.Many2many(comodel_name="res.partner", related="project_id.field_one")
field_two = fields.Many2many(comodel_name="res.partner", related="project_id.field_two")
field_three = fields.Many2many(comodel_name="res.partner", relation="acco", column1="ac", column2="co")
当用户想要在 field_three
中添加合作伙伴 (res.partner
) 时,那些已经在 field_one
和 field_two
中的合作伙伴应该不在 field_three
.
的滚动列表中
我该如何继续这样做?非常感谢。<
我用了api.onchange("field_one", "field_two")
但是没用
PS : 我们这里是 "project.task"
模型。
您好,请创建 field_one 和 field_two 商店。
field_one = fields.Many2many(comodel_name="res.partner", related="project_id.field_one", store=True)
field_two = fields.Many2many(comodel_name="res.partner", related="project_id.field_two", store=True)
使用XML域:
对于旧版本的 Odoo(我认为 < 11)有一个解决方案:
<field name="field_three"
....
....
domain = [('id', 'not in' , field_one[0][2])]/>
这个解决方案不起作用,但经过一些调试后我发现 Odoo
将选定的 ID 存储在 _store
属性中。如果你想排除选择
搜索列表中的合作伙伴使用此域。
domain = [('id', 'not in' , field_one._store), ('id', 'not in', field_two._store)]
这对我来说在 Odoo 11 中工作得很好希望它对你有用。
我有两个 many2many
相关字段,我们称它们为 field_one
和 field_two
以及一个 many2many
,我们称它们为 field_three
。
三个字段的定义如下:
field_one = fields.Many2many(comodel_name="res.partner", related="project_id.field_one")
field_two = fields.Many2many(comodel_name="res.partner", related="project_id.field_two")
field_three = fields.Many2many(comodel_name="res.partner", relation="acco", column1="ac", column2="co")
当用户想要在 field_three
中添加合作伙伴 (res.partner
) 时,那些已经在 field_one
和 field_two
中的合作伙伴应该不在 field_three
.
我该如何继续这样做?非常感谢。<
我用了api.onchange("field_one", "field_two")
但是没用
PS : 我们这里是 "project.task"
模型。
您好,请创建 field_one 和 field_two 商店。
field_one = fields.Many2many(comodel_name="res.partner", related="project_id.field_one", store=True)
field_two = fields.Many2many(comodel_name="res.partner", related="project_id.field_two", store=True)
使用XML域:
对于旧版本的 Odoo(我认为 < 11)有一个解决方案:
<field name="field_three"
....
....
domain = [('id', 'not in' , field_one[0][2])]/>
这个解决方案不起作用,但经过一些调试后我发现 Odoo
将选定的 ID 存储在 _store
属性中。如果你想排除选择
搜索列表中的合作伙伴使用此域。
domain = [('id', 'not in' , field_one._store), ('id', 'not in', field_two._store)]
这对我来说在 Odoo 11 中工作得很好希望它对你有用。