繁体   English   中英

如何根据用户组为字段设置odoo域过滤器?

[英]how to set odoo domain filter for a field based on user group?

我正在尝试在特定组的字段上设置一个域,并向其他人开放以返回所有值

这是我所做的

def _visit_domain(self):
    domain = []
    if self.env.user.has_group('sales_team.group_sale_salesman'):
        print("Hiiii")

        domain.append(('user_id.name','=',self.user_id.name))
        return domain
    else:
        domain.append(())
        return domain
user_id = fields.Many2one('res.users', string='Salesperson', default=lambda self: self.env.user)
visit_id = fields.Many2one('crm.visit', 'Visit',domain=_visit_domain )

它总是什么都不返回,而且它永远不会打印 HII

为什么还要使用组条件? 我只会在visit_id上使用固定域: "[('user_id', '=?', user_id)]" 该域应该只查找与模型的user_id中相同用户的访问,或者如果没有为所有访问提供user_id

如果您还想按组限制 model crm.visit (如 model sale.order ),请使用 Odoo 的访问实用程序 ( ir.rule )。

如果您想在 visit_id 字段的域中添加“sales_team.group_sale_salesman”,请尝试此方法我认为此解决方案可能适合您的情况.. visit_id = fields.Many2one('crm.visit', 'Visit',domain= lambda self: [("groups_id", "=", self.env.ref("sales_team.group_sale_salesman").id)] )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM