如何为基于用户组的字段设置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(的访问实用程序。

试试这个如果您想添加";sales_team.group_sale_salesman";在visit_id领域,我认为这个解决方案可能适合您的情况。。visit_id = fields.Many2one('crm.visit', 'Visit',domain= lambda self: [("groups_id", "=", self.env.ref("sales_team.group_sale_salesman").id)] )

最新更新