Odoo-字段“ product_variant_count”不存在

时间:2018-10-07 12:09:21

标签: model field odoo

我创建了一个名为Product_Videos的自定义模型,该模型将为一个产品保存多个视频,这是我的模型: 从odoo导入模型,字段,api

class Product_Videos(models.Model):
    _name = "product.videos"

    embed_id = fields.Char(string='Embed Code Id')
    product_id = fields.Many2one("product.template", "Product")

然后,我继承了与Product_Videos相关的产品模型: 从odoo导入模型,api,字段

class Product(models.Model):
    _inherit = "product.template"

    # Tab Fields
    x_videos = fields.One2many("product.videos", "product_id", "Videos")

现在,我继承了产品模板视图,并添加了一个名为video的新标签,如下所示:

<?xml version="1.0" encoding="utf-8" ?>

<odoo>
    <data>
        <record id="product.tabs-inherited" model="ir.ui.view">
            <field name="name">product.template.tabs</field>
            <field name="model">product.template</field>
            <field name="inherit_id" ref="product.product_template_only_form_view" />
            <field name="arch" type="xml">
                <xpath expr="//page[@name='notes']" position="after">
                    <page string="Videos" name="videos">
                        <field name="x_videos"/>
                    </page>
                </xpath>
            </field>
        </record>  
    </data>
</odoo>

现在在新标签上,它仅在树视图上显示视频的ID,我希望它显示其他字段(例如嵌入代码),因此我继承了最后一个视图:

<?xml version="1.0" encoding="utf-8" ?>

<odoo>
        <record id="product-video-inherited" model="ir.ui.view">
            <field name="name">product.video.embed</field>
            <field name="model">product.videos</field>
            <field name="inherit_id" ref="product.tabs-inherited" />
            <field name="arch" type="xml">
                <xpath expr="//page[@name='videos']" position="inside">
                    <field name="embed_id" />
                </xpath>
            </field>
        </record>  
</odoo>

但是当我升级模块时,我得到了:

  

字段product_variant_count不存在

我不知道product_variant_count字段的来源,但我注意到如果替换

<field name="model">product.videos</field>

使用其他模型,例如 product.template ,效果很好。

有什么想法吗?谢谢

1 个答案:

答案 0 :(得分:1)

在Odoo中应用xml视图继承时,(通常)这意味着新视图将继承相同模型的现有视图。因此,需要为模型controller.text 定义视图product-video-inherited,以使其按预期工作。

要定义模型product.template的哪些字段将在o2m字段product.videos上可见,您可以定义一个子视图,例如:

x_videos

或者您可以为模型 <record id="product.tabs-inherited" model="ir.ui.view"> <field name="name">product.template.tabs</field> <field name="model">product.template</field> <field name="inherit_id" ref="product.product_template_only_form_view" /> <field name="arch" type="xml"> <xpath expr="//page[@name='notes']" position="after"> <page string="Videos" name="videos"> <field name="x_videos"> <tree> <field name="embed_id"/> </tree> </field> </page> </xpath> </field> </record> 定义一个树视图,该树视图不继承任何其他视图,以定义模型product.videos的所有默认树视图将显示什么。