Openerp XML上下文默认为odoo9中的One2many

Openerp XML上下文默认为odoo9中的One2many,openerp,odoo-9,Openerp,Odoo 9,我对这个xml规范(odoo 9)有一个问题: 变量“groups\u ref”与res.groups之间有很多关系 .... {'groups\u ref':self.env.ref('security.basic\u user')} .... 来自模块安全性的XML基本用户 基本用户 这给了我一个错误: NameError:未定义self 我的问题是如何使用这个xml定义将默认值传递给One2many关系,我不想通过py中的字段声明传递它。谢谢。上下文中传递组的通用语法 <fi

我对这个xml规范(odoo 9)有一个问题:

变量“groups\u ref”与res.groups之间有很多关系


....
{'groups\u ref':self.env.ref('security.basic\u user')}
....
来自模块安全性的XML基本用户


基本用户
这给了我一个错误:

NameError:未定义self


我的问题是如何使用这个xml定义将默认值传递给One2many关系,我不想通过py中的字段声明传递它。谢谢。

上下文中传递组的通用语法

<field name="context">{'default_groups_ref': ['module_name.register_group_xml_id_1', 'module_name.register_group_xml_id_2',]}</field>
{'default\u groups\u ref':['module\u name.register\u group\u xml\u id\u 1','module\u name.register\u group\u xml\u id\u 2',]}
请尝试使用以下代码:

<record id="some_id" model="ir.actions.act_window">
....
    <field name="context">{'default_groups_ref': ['security.basic_user']}</field>
....
</record>

....
{'default_groups_ref':['security.basic_user']}
....

在xml中如果要为需要python表达式的字段定义值,则需要使用
eval

假设数据库中有一条xmlid=“record_id”的记录,那么在xml文件中,要定义该记录的多个字段的值:

<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'))]}" />

注意:对于默认值,您需要在字段名称前加前缀 <默认值>


python控制台错误:
res=self.\u obj.execute(查询,参数)
DataError:输入的sintax对于int类型无效:«security.basic\u user»第10行:其中“res\u groups.id IN”(“security.basic\u user”)可以用基本用户xml记录更新您的问题。记录创建可能有问题。我们可以在字段中使用ref吗?因为“此错误是由于字符串“security.basic_user”不是整数。查询“res_groups”.id所在的位置(“security.basic_user”)需要整数。他不能执行那个查询,他需要像(1,2)中的WHERE“res_groups”.id这样的东西。是的,我们可以使用它。您可以参考这些,使用
ref('security.base\u user')
怎么样?
<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'))]}" />