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
拉出的内容(。
您能否发布您的完整模型,以便我们更好地了解正在进行的关系?