[英]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.