获取当前用户';s员工';XML文件odoo 10中的s ID
我的模型我有一个字段“导师id”,定义为:获取当前用户';s员工';XML文件odoo 10中的s ID,xml,filter,openerp,searchview,odoo-10,Xml,Filter,Openerp,Searchview,Odoo 10,我的模型我有一个字段“导师id”,定义为: mentor_id = fields.Many2one('hr.employee', string='Mentor') 在我的SearchView中,我需要添加一个过滤器,该过滤器只显示mentor_id=当前用户员工id的记录 所以我补充说: <filter string="My :" name="my" domain="[('mentor_id','in',uid.employee_ids)]"/> uid指的是当前用户,不是吗?那
mentor_id = fields.Many2one('hr.employee', string='Mentor')
在我的SearchView中,我需要添加一个过滤器,该过滤器只显示mentor_id=当前用户员工id的记录
所以我补充说:
<filter string="My :" name="my" domain="[('mentor_id','in',uid.employee_ids)]"/>
uid指的是当前用户,不是吗?那么为什么错误会说:“对象没有属性‘employee_id’”。
任何帮助都将不胜感激。在视图中,您只能通过
user.id
我还没有测试,但是您可能会在视图中的user
变量中获得当前用户对象。您可以在域中使用user.employee\u id
如果不发生这种情况,您可以做的是:
- 使用指向函数的compute属性创建与
的manyOne关系res.users
- 在函数中写入
。您将在视图中获得当前用户对象self.*feild\u name*=self.env.user
谢谢再次查看您收到的错误 对象没有属性
employee\u id
这表明您没有将employee_id
字段添加到res.users
模型中(这就是uid
所显示的内容)
您能否发布完整的模型,以便我们更好地了解正在进行的关系?您应该在员工自身上写下导师的用户id。这会更容易。只需添加一个相关字段(不需要设置/显示它,只需在python代码中添加该字段即可): 用这个过滤器代替
<filter string="My :" name="my" domain="[('mentor_user_id', '=', uid)]"/>
@Cherifodo谢谢。
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)]"/>