簡體   English   中英

如何基於odoo中的組過濾many2one字段

[英]how to filter a many2one field based on groups in odoo

我有一個many2one字段引用res.users模型。 我有兩個組,經理和用戶。 基於該組,我該如何過濾用戶。 以便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)]}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM