Iai*_*can 1 xml database many-to-many openerp seeding
我无法找到任何many-to-many从xml数据中播种的例子OpenERP,有人知道这是否可行,如果是这样的话怎么样?我one2many使用了ref属性,但没有任何用处M2M.也没有来自openerp帮助网站的回答.
谢谢!伊恩
要了解如何为many2many关系指定数据,您可能需要查看此文档:
https://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html/#osv.osv.osv.write
例如,以下提供了对id列表的引用:
[(6, 0, [id1, id2, id3, ])]
Run Code Online (Sandbox Code Playgroud)
为了在XML文件中使用many2many关系,我推荐以下内容:
https://doc.openerp.com/5.0/developer/5_16_data_serialization/xml_serialization/
让我们以你的情况为例.由于您没有给我们一个代码示例,假设我们在新的test_module中有以下两个对象:
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()
Run Code Online (Sandbox Code Playgroud)
现在我们可以创建一个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>
Run Code Online (Sandbox Code Playgroud)