如何解决如何根据用户组为字段设置odoo域过滤器?
我试图在特定组的字段上设置一个域,并向其他人开放以返回所有值
这是我做的
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
,则为该用户。
如果您也要按组限制模型crm.visit
(例如在模型sale.order
中),请使用Odoo(ir.rule
)的访问实用程序。 / p>
尝试一下
如果您想在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)] )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。