Inheritance 请参阅测试数据-Odoo 11中的基本模块

Inheritance 请参阅测试数据-Odoo 11中的基本模块,inheritance,odoo,eval,odoo-11,Inheritance,Odoo,Eval,Odoo 11,我有一个名为剧院的基本模块,其型号为票证: # -*- coding: utf-8 -*- from odoo import models, fields, api class ticket(models.Model): _name = 'theater.ticket' _rec_name = 'representation_id' price= fields.Float('Price',required=True) representation_id =

我有一个名为
剧院
的基本模块,其型号为
票证

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ticket(models.Model):
    _name = 'theater.ticket'
    _rec_name = 'representation_id'

    price= fields.Float('Price',required=True)
    representation_id = fields.Many2one('theater.representation',string='Representation',required=True)
# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ticket(models.Model):
    _inherit = 'theater.ticket'

    individualTicket_id = fields.Many2one('theater_extension.individualTicket',string='Individual Ticket')
然后,我创建了另一个名为
theater\u extension
的扩展模块,并在
ticket
中添加了一个附加字段:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ticket(models.Model):
    _name = 'theater.ticket'
    _rec_name = 'representation_id'

    price= fields.Float('Price',required=True)
    representation_id = fields.Many2one('theater.representation',string='Representation',required=True)
# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ticket(models.Model):
    _inherit = 'theater.ticket'

    individualTicket_id = fields.Many2one('theater_extension.individualTicket',string='Individual Ticket')
当我将测试数据添加到剧场扩展时,问题就出现了。我更新文件
\uuuu manifest\uuuu.py

'demo': ['demo/dataTest.xml'],
我创建了
dataTest.xml

    <record id="ticket1" model="theater.ticket">
        <field name="representation_id" ref="theater.representation1"></field>
        <field name="price">22</field>
        <field name="seats_ids"
        eval="[(6, 0, [ref(theater.seat1),ref(theater.seat2)])]"></field>
    </record>
报告的错误:

odoo.tools.convert.ParseError: "<class 'NameError'>: "name 'theater' is not defined" while evaluating
'[(6, 0, [ref(theater.seat1),ref(theater.seat2)])]'" while parsing /home/usuario/odoo-dev/theater_extension/demo/dataTest.xml:18, near
<record id="ticket1" model="theater.ticket">
        <field name="representation_id" ref="theater.representation1"></field>
        <field name="price">22</field>
        <field name="seats_ids"
        eval="[(6, 0, [ref(theater.seat1),ref(theater.seat2)])]"></field>
</record>
odoo.tools.convert.ParseError::“计算时未定义名称‘剧院’”
“[(6,0,[ref(theater.seat1),ref(theater.seat2)])]”解析/home/usuario/odoo dev/theater_extension/demo/dataTest.xml:18,near
22

实际上,错误非常简单,但很难发现,
ref
接受
XML-ID
的字符串表示,而您忘记在ID周围加引号:

      eval="[(6, 0, [ref('theater.seat1'), .....])]"

因为在计算表达式时没有加引号,所以python会将它们视为变量,这就是为什么会出现此错误的原因,因为没有称为theater的引用

您是否已将票证模块的python文件名添加到
\uuuu init\uuuuuu.py