如何根据odoo中的组过滤many2one字段

时间:2016-04-29 04:51:06

标签: python odoo-9

我有一个涉及res.users模型的many2one字段。我有两个小组,经理和用户。基于该组,我如何过滤用户。那么many2one字段只给经理或用户?

2 个答案:

答案 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)]}}