如何根据odoo中的组过滤many2one字段
how to filter a many2one field based on groups in odoo
我有一个引用 res.users 模型的 many2one 字段。我有两个组,经理和用户。基于组,我如何过滤用户。这样 many2one 字段只给出经理或用户?
我分享一个答案。检查它是否有用。 (我没试过)
在odoo中创建群组时,可以在创建用户的同时select相应的群组。为此,odoo 将自动创建一个 selection 场,类似于 sel_group_14_15。例如,如果有两个组,比如 User 和 Manager(如您的情况)。对于此 selection 字段,用户的键值可能是 14,经理键值可能是 15。因此要基于组进行过滤,请在域中使用此字段。由于此字段是 res.users 的一部分,您可以直接在域中使用此字段。
例如参考这个。
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)]}}
我有一个引用 res.users 模型的 many2one 字段。我有两个组,经理和用户。基于组,我如何过滤用户。这样 many2one 字段只给出经理或用户?
我分享一个答案。检查它是否有用。 (我没试过)
在odoo中创建群组时,可以在创建用户的同时select相应的群组。为此,odoo 将自动创建一个 selection 场,类似于 sel_group_14_15。例如,如果有两个组,比如 User 和 Manager(如您的情况)。对于此 selection 字段,用户的键值可能是 14,经理键值可能是 15。因此要基于组进行过滤,请在域中使用此字段。由于此字段是 res.users 的一部分,您可以直接在域中使用此字段。
例如参考这个。
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)]}}