【问题标题】:how to filter a many2one field based on groups in odoo如何根据odoo中的组过滤many2one字段
【发布时间】:2017-06-11 20:07:49
【问题描述】:

我有一个引用 res.users 模型的 many2one 字段。我有两个组,经理和用户。基于组我如何过滤用户。所以 many2one 字段只给经理或用户?

【问题讨论】:

    标签: python odoo-9


    【解决方案1】:

    我正在分享一个答案。检查它是否有用。 (我没试过)

    在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
    

    【讨论】:

      【解决方案2】:

      设置这些过滤器的最佳方法如下:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多