我试图输入一些根据模型为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>
感谢您的帮助
答案 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))
希望它会对您有所帮助。