在XML文件中获取当前用户的员工ID odoo 10



I my my model i 有一个字段 'mentor_id' 定义为:

mentor_id = fields.Many2one('hr.employee', string='Mentor')

在我的搜索视图中,我需要添加一个过滤器,该过滤器仅显示mentor_id = 当前用户的Employee_id 所以我补充说:

<filter string="My :" name="my" domain="[('mentor_id','in',uid.employee_ids)]"/>

但它似乎不起作用,我收到此错误:

Uncaught Error: Failed to evaluate search criterions: 
{"code":400,"message":"Evaluation Error","data":{"type":"local_exception","debug":"Local evaluation failurenAttributeError: object has no attribute 'employee_ids'nn{"domains":[[],"[('mentor_id','in',uid.employee_ids)]"],"contexts":[{"lang":"en_US","tz":false,"uid":1,"params":{"action":324}},{}],"group_by_seq":[]}"}}

uid是指当前用户不是吗?那么为什么错误说:"对象没有属性'employee_ids'"。 任何帮助将不胜感激。

在视图中,您只能通过user.id获取当前用户 ID 我还没有测试过,但您可能会在视图中的user变量中获取当前用户对象。您可以在域中使用user.employee_id

如果没有发生这种情况,您可以做的是:

  • 使用res.users创建 Many2one 关系,计算属性指向函数。
  • 在函数中写入self.*feild_name* = self.env.user。你将在视图中获取当前用户对象。

谢谢

你应该在员工身上写下导师的用户ID。这会更容易。只需添加一个相关字段(您不需要设置/显示它,只需在python代码中添加该字段即可完成(:

mentor_id = fields.Many2one('hr.employee', string='Mentor')
mentor_user_id = fields.Many2one(
related='mentor_id.user_id', store=True, readonly=True)

只需使用此过滤器即可

<filter string="My :" name="my" domain="[('mentor_user_id', '=', uid)]"/>

再次查看您收到的错误。

对象没有属性employee_ids

这表明您尚未将employee_ids字段添加到res.users模型中(这是uid拉出的内容(。

您能否发布您的完整模型,以便我们更好地了解正在进行的关系?

相关内容

  • 没有找到相关文章

最新更新