我需要了解Odoo产品模块的product_demo.xml中以下代码中的eval
属性:
"record id="product_product_4_product_template" model="product.template">
field name="attribute_line_ids" eval="[(6,0,[ref('product.product_attribute_line_1'), ref('product.product_attribute_line_2'), ref('product.product_attribute_line_3')])]"/>
</record>"
我知道此处设置了attribute_line_ids
值。我也理解&#39; ref&#39;里面的价值观。指的是XML ids,简而言之,它将返回模型 - &quot; product.attribute.line与XML id关联。
我真的不明白eval
属性中每个值的含义以及它对视图级别和数据库级别的更改。我已经提到了许多odoo文档,但没有一个可以提供清晰度。
答案 0 :(得分:11)
这会将一堆值添加到名为Many2many
的{{1}}字段中。 Odoo具有在attribute_line_ids
字段上设置值的特殊语法。此语法为described here,并在您询问的代码中使用。
基本上,要修改many2many关系,请使用三元素元组。元组的第一个元素是一个数字命令,另外两个元素是值 - 它们的确切函数取决于命令。
有六个数字命令:
Many2many
关系代码的相关部分如下所示:
Many2many
这是一个三元素元组(由于代码在(6,0,[ref('product.product_attribute_line_1'), ref('product.product_attribute_line_2'), ref('product.product_attribute_line_3')])
关系上设置值,因此是预期的):
Many2many
来更好地反映这一点。)