Odoo 11.从xml导入many2one

问题描述 投票:-1回答:1

我试图输入一些寄存器,根据模型是many2one,但Odoo显示错误信息。

你能帮助我吗?

XML文件:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="account.payment.term" id="account_payment_term_6">
    <field name="name">10 Dias</field>
    <field name="active" eval="True" />
    <field name="line_ids" eval="[(6, 0), ({'value_amount': '0.0', 'value': > Saldo', 'days2': '0', 'days': '10'})]"/>
</record>
</odoo>

错误:

File "/usr/lib/python3/dist-packages/odoo/fields.py", line 2283, in write
comodel.browse(act[2]).write({inverse: record.id})
odoo.tools.convert.ParseError: "tuple index out of range" while parsing /mnt/extra-addons/import/data/account_payment_term.xml:3, near
<record model="account.payment.term" id="account_payment_term_6">
    <field name="name">10 Dias</field>
    <field name="active" eval="True"/>
    <field name="line_ids" eval="[(6, 0), ({'value_amount': '0.0', 'value': 'Saldo', 'days2': '0', 'days': '10'})]"/>
</record>

谢谢你的帮助

xml import odoo odoo-11
1个回答
0
投票

当您使用(6,0)语义时,它只接受一个id列表。在这里传递键值对,因此需要使用(0,0)。

如果要使用键值对创建新记录,则必须使用[(0,0),{values}]或尝试链接已存在的记录,使用[(4,ID)]或[( 6,0,[编号])]。

试试以下代码:

 <record model="account.payment.term" id="account_payment_term_6">
<field name="name">10 Dias</field>
<field name="active" eval="True"/>
<field name="line_ids" eval="[(0, 0), ({'value_amount': '0.0', 'value': 'Saldo', 'days2': '0', 'days': '10'})]"/>
</record>

这些是用于编辑/更新,删除等的现有语义,请参考以下用于One2Many和Many2Many的示例。

(0,0,{values})链接到需要使用给定值字典创建的新记录

(1,ID,{values})使用id = ID更新链接记录(在其上写入值)

(2,ID)删除并删除id = ID的链接记录(在ID上调用unlink,这将完全删除对象,以及指向它的链接)

(3,ID)使用id = ID剪切到链接记录的链接(删除两个对象之间的关系但不删除目标对象本身)

(4,ID)链接到id = ID的现有记录(添加关系)

(5)取消全部链接(如使用(3,ID)所有链接记录)

(6,0,[ID])替换链接ID列表(如使用(5)然后(4,ID)ID列表中的每个ID)

希望它会对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.