【发布时间】:2018-03-01 15:05:19
【问题描述】:
我们有一个 V9 odoo 实例正在运行。只要域过滤器与评估值一起使用,就会引发错误。
例如,在 res.users 搜索视图上,我创建了一个简单的域过滤器:
[('id', '=', user.id)]
应用此过滤器时会引发以下错误:
错误:无法评估搜索条件: {"code":400,"message":"Evaluation Error","data":{"type":"local_exception","debug":"本地评估失败\nNameError: name 'user' is not defined\n\ n{\"domains\":[[],\"['id', '=', user.id]\"],\"contexts\":[{\"lang\":\"en_GB\" ,\"tz\":\"Asia/Saigon\",\"uid\":566,\"params\":{\"action\":69,\"page\":0,\"limit\ ":80,\"view_type\":\"list\",\"model\":\"res.users\",\"menu_id\":79,\"_push_me\":false},\"search_default_no_share \":1},{},\"{}\"],\"group_by_seq\":[\"{}\"]}"}}
无论使用什么 odoo 系统值,都会发生这种情况。例如:
- user.partner_id
- 用户名
- user.id
唯一不报错的就是uid,即
[('id', '=', uid)]
访问用户的目的是访问与当前用户相关的更多值。我尝试创建的域过滤器的完整代码如下:
<record id="crm_opportunity_search_view" model="ir.ui.view">
<field name="name">crm.opportunity.search.view</field>
<field name="model">crm.opportunity</field>
<field name="arch" type="xml">
<search string="Opportunities">
<field name="name" filter_domain="[('name','ilike',self)]"/>
<filter string="My Division" name="my_division" domain="[('owner_id.business_unit_id.id', '=', user.partner_id.business_unit_id.id)]"/>
</search>
</field>
</record>
“我的部门”是机会过滤器菜单中的一个可用过滤器。 However, when selected throws an error that "user" is not defined.
我尝试在 XML 中添加域过滤器并使用技术设置中的高级过滤器无济于事。
我已经在两个单独的 v9 实例中尝试过,结果相同。
尝试在 v11 的新实例中添加任何域过滤器,如下所示,使用 user.id 或 uid 会返回“域过滤器格式不正确”错误。
[["name","=",user.id]]
欢迎任何关于我做错了什么的线索。
【问题讨论】:
-
域是元组列表,以前的版本是这样的:
<field name="user_id" filter_domain="[('user_id','=',uid)]" /> -
感谢@ChesuCR 的回复,使用以下 filter_domain:[('id', '=', user.id)] 在 v9 中也失败了。
-
但是,我需要访问/评估当前用户“user.partner_id.business_unit_id.id”的另一个相关值,这是我们在 res.partner 表单中添加的相关字段。
标签: python xml python-2.7 odoo odoo-9