как добавить поле в product.template в odoo 12

Я хотел бы отобразить поле в представлении формы модуля продукта, вот файл python (я использую odoo 12.):

class ClassProductInherited:
    _inherit = 'product.template'

    file = fields.Char(string="Choose File")

Вот xml-код (я использую odoo 12.):

<record id="view_product_form_inherit" model="ir.ui.view">
            <field name="name">product.template.common.form.inherit</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='inventory']/group" position="before">
                    <group col="2" colspan="2">
                        <field name="file"/>
                    </group>
                </xpath>

            </field>
        </record>

Когда я перезапускаю сервер, проблема в том, что у меня появляется следующая ошибка:

File "/home/odoo/models.py", line 1112, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Field `file` does not exist

Error context:
View `product.template.common.form.inherit`
[view_id: 2095, xml_id: module.view_product_form_inherit, model: product.template, parent_id: 402]
None" while parsing /home/omar/odoo/custom-addons/addons12/module/views/views.xml:403, near
<record id="view_product_form_inherit" model="ir.ui.view">
            <field name="name">product.template.common.form.inherit</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='inventory']/group" position="before">
                    <group col="2" colspan="2">
                        <field name="file"/>
                    </group>
                </xpath>

            </field>
        </record>

person Programmer LiLi    schedule 11.03.2019    source источник


Ответы (3)


1. Сначала проверьте, содержит ли файл manifest .py:

"depends": [
    'product'
], 

2- проверьте, существует ли имя вашего файла, содержащего класс ClassProductInherited: в файле init .py, например:

from . import my_file
person developer    schedule 12.03.2019

<record id="view_product_form_inherit" model="ir.ui.view">
            <field name="name">product.template.common.form.inherit</field>
            <field name="model">product.template</field>
            <field name="inherit_id" ref="product.product_template_form_view"/>
            <field name="arch" type="xml">
                <xpath expr="//field[@name='weight']" position="before">
                    <group>
                        <field name="file"/>
                    </group>
                </xpath>    
            </field>
        </record>

Попробуйте этот фрагмент кода и дайте мне знать, работает ли он.

person Dodge    schedule 27.06.2019

проверьте в своем файле .py, что вы должны наследовать только один модуль в одном ... если вы объявляете более одного модуля в одной записи, удалите его. и сделайте еще одну запись для другого модуля. затем после проверки вы объявляете или отмечаете поле файл в вашем .py файле.

person Kiran Patil    schedule 08.10.2019