【发布时间】:2017-06-11 20:07:49
【问题描述】:
我有一个引用 res.users 模型的 many2one 字段。我有两个组,经理和用户。基于组我如何过滤用户。所以 many2one 字段只给经理或用户?
【问题讨论】:
我有一个引用 res.users 模型的 many2one 字段。我有两个组,经理和用户。基于组我如何过滤用户。所以 many2one 字段只给经理或用户?
【问题讨论】:
我正在分享一个答案。检查它是否有用。 (我没试过)
在odoo中创建群组时,可以在创建用户的同时选择对应的群组。为此,odoo 将自动创建一个选择字段,例如 sel_group_14_15。例如,如果有两个组,请说用户和经理(如您的情况)。对于此选择字段,用户的键值可能是 14,经理键值可能是 15。因此,要基于组进行过滤,请在域中使用此字段。由于该字段是 res.users 的一部分,因此您可以直接在 domain 中使用该字段。
例如参考这个。
domain=[('sel_group_14_15','=',14)] --- for filtering users
domain=[('sel_group_14_15','=',15)] ---- for filtering manager
【讨论】:
设置这些过滤器的最佳方法如下:
user = fields.Many2one(comodel_name='res.users', string="User", domain="[]")
@api.onchange('some_field')
@api.model
def set_domain(self):
group = self.env.ref(module_name.group_xml_id)
users = []
for user in group.users:
users.append(user.id)
return {'domain':{'user':[('id','in',users)]}}
【讨论】: