我有一个涉及res.users模型的many2one字段。我有两个小组,经理和用户。基于该组,我如何过滤用户。那么many2one字段只给经理或用户?
答案 0 :(得分:1)
我正在分享一个答案。检查它是否有用。 (我没有尝试过)
在odoo中创建组时,可以在创建用户时选择相应的组。为此,odoo将自动创建一个类似于sel_group_14_15的选择字段。例如,如果有两个组,请说User和Manager(如您的情况)。对于该选择字段,用户的密钥值可以是14,并且管理者密钥值将是15.因此,基于组过滤使用域中的该字段。由于此字段是res.users的一部分,因此您可以直接在域中使用此字段。
例如,参考这个。
domain=[('sel_group_14_15','=',14)] --- for filtering users
domain=[('sel_group_14_15','=',15)] ---- for filtering manager
答案 1 :(得分:0)
设置这些过滤器的最佳方法如下:
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)]}}