Odoo 11.从xml导入many2one
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Odoo 11.从xml导入many2one相关的知识,希望对你有一定的参考价值。
我试图输入一些寄存器,根据模型是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>
谢谢你的帮助
当您使用(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)
希望它会对你有所帮助。
以上是关于Odoo 11.从xml导入many2one的主要内容,如果未能解决你的问题,请参考以下文章
odoo12 通过一个字段控制另一个Many2one字段的domain
odoo12 通过一个字段控制另一个Many2one字段的domain
Odoo:如何显示 one2many 字段中的 many2one 字段的字段
如何在 Odoo 中呈现表单视图模型的 Many2one 字段?