gpt4 book ai didi

xml - OpenERP,用 XML 播种 Many2Many 关系?

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:00 25 4
gpt4 key购买 nike

我在 OpenERP 中的 xml 数据中找不到任何关于 many-to-many 的例子,有人知道吗这是可能的,如果是这样怎么办?我得到了使用 ref 属性的 one2many,但没有用于 M2M。 openerp 帮助站点也没有答案。

谢谢!伊恩

最佳答案

要了解如何为多对多关系指定数据,您可能需要查看此文档:

https://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html/#osv.osv.osv.write

例如,下面给出了对 id 列表的引用:

[(6, 0, [id1, id2, id3, ])]

对于在 XML 文件中使用多对多关系,我推荐阅读以下内容:

https://doc.openerp.com/5.0/developer/5_16_data_serialization/xml_serialization/

让我们根据您的情况举个例子。由于您没有给我们您的代码示例,所以假设我们在新的 test_module 中有以下 2 个对象:

import netsvc
import pooler
from osv import fields, osv

class group(osv.osv):
_name = 'test_module.group'
_columns = {
'name': fields.char("Name", size=128,),
}
group()

class user(osv.osv):
_name = 'test_module.user'
_columns = {
'name': fields.char("Name", size=128,),
'group_ids': fields.many2many('test_module.group',
'test_module_user_group_rel',
'user_id', 'group_id', 'Groups'),

user()

现在我们可以创建一个demo.xml 文件来在安装和更新时填充数据库。此示例 XML 包含 4 个组和 2 个用户的记录。每个用户都与两个不同的组相关:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="group_1" model="test_module.group">
<field name="name" eval="'Group 1'"/>
</record>
<record id="group_2" model="test_module.group">
<field name="name" eval="'Group 2'"/>
</record>
<record id="group_3" model="test_module.group">
<field name="name" eval="'Group 3'"/>
</record>
<record id="group_4" model="test_module.group">
<field name="name" eval="'Group 4'"/>
</record>

<record id="user_1" model="test_module.user">
<field name="name" eval="'User 1'"/>
<field name="group_ids"
eval="[(6, 0, [group_1, group_3, ])]"/>
</record>
<record id="user_2" model="test_module.user">
<field name="name" eval="'User 2'"/>
<field name="group_ids"
eval="[(6, 0, [group_2, group_3, ])]"/>
</record>
</data>
</openerp>

关于xml - OpenERP,用 XML 播种 Many2Many 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com