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