0

我创建了一个自定义模块,您可以在其中链接 many2many 字段中的多个联系人,我想自动将它们全部添加为关注者。我读过这篇文章:

将用户添加为关注者的自动操作 Odoo 12

添加关注者可以正常工作,但仅当字段中有一个用户或合作伙伴时。在我的安装中,这些是many2many 字段。当我在其中一个字段中添加多个用户或合作伙伴时,代码会崩溃。

当我想在其中一个字段中添加超过 1 个联系人或用户时,是否需要更改此代码中的某些内容?

我的自动操作中有这个 python 代码:

record.message_subscribe(partner_ids=[record.field1.id, record.field2.partner_id.id, record.field3.partner_id.id])

字段 1 = 合作伙伴

字段 2 & 字段 3 = 用户

谢谢你的帮助!

4

1 回答 1

0

.id当有多个记录时,您不能使用获取记录的 id,您必须使用.ids返回记录 id 的列表。因此,您的代码必须更改为:

field1_ids = record.field1.ids
field2_ids = record.field2.mapped('partner_id').ids
field3_ids = record.field3.mapped('partner_id').ids
record.message_subscribe(partner_ids=field1_ids+field2_ids+field3_ids)

因此,您的代码的主要问题是,您试图访问记录可能是多个(as many2many)的字段,但是在 Odoo ORM 中您不能这样做,它总是会Expected Singletone为多个记录提供错误。

于 2022-03-05T07:30:57.563 回答