我对这个xml规范有问题(odoo 9):
var“groups_ref”是与res.groups的Many2many关系。
<record id="some_id" model="ir.actions.act_window">
....
<field name="context">{'groups_ref': self.env.ref('security.basic_user')}</field>
....
</record>
模块安全性的XML基本用户
<record id="basic_user" model="res.groups">
<field name="name">Base User</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
给我一个错误:
NameError:未定义self
我的问题是如何使用这个xml定义将默认值传递给One2many关系,我不想在py中传递它通过字段声明。感谢。
答案 0 :(得分:0)
在上下文中传递组的通用语法
<field name="context">{'default_groups_ref': ['module_name.register_group_xml_id_1', 'module_name.register_group_xml_id_2',]}</field>
尝试使用以下代码:
<record id="some_id" model="ir.actions.act_window">
....
<field name="context">{'default_groups_ref': ['security.basic_user']}</field>
....
</record>
答案 1 :(得分:0)
在xml中如果要为需要python表达式的字段定义值,则需要使用eval
:
让我们假设您的数据库中有一条记录,其中包含xmlid =“record_id”,因此在xml文件中为此记录定义了many2one字段的值:
<field name="m2o_field_name" ref="record_id"/>
or
<field name="m2o_field_name" eval="ref('record_id')"/>
所以在你的情况下试试这个,因为我从来没有尝试过:
<field name="context" eval="{'default_groups_ref':[(4,ref('security.basic_user'))]}" />
请注意,对于默认值,您需要在字段名称前加上前缀 &LT; default_&gt;