如何在Odoo中设置员工应用默认搜索当前用户员工ID
解决方法
直接在XML动作的context字段里用Odoo内置的表达式语法取值即可,把代码里的#替换为user.employee_id.id:
<record id="hr.open_view_employee_list_my" model="ir.actions.act_window"> <field name="name">Search Filter</field> <field name="context">{"search_default_employee_id": user.employee_id.id}</field> </record>
为什么之前的尝试无效
context.get(employee_id)是Python代码的写法,但Odoo在XML定义动作时,context字段支持的是Odoo表达式语言,并非直接执行Python代码。这里的user是Odoo内置的上下文变量,直接指向当前登录的用户对象,通过user.employee_id.id就能获取其关联的员工记录ID。
注意事项
要确保当前登录用户已经在系统中关联了对应的员工记录(即用户的employee_id字段不为空),否则这个默认过滤器不会生效,不会报错但也不会过滤任何结果。
内容的提问来源于stack exchange,提问作者Vatana7
相关产品推荐
相关产品推荐

