Odoo 11.从xml导入many2one

时间:2018-06-25 14:48:20

标签: xml import odoo odoo-11

我试图输入一些根据模型为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>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

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

尝试以下代码:

 <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上的取消链接,这将完全删除对象以及指向该对象的链接)

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

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

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

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

希望它会对您有所帮助。