【问题标题】:How to correctly inherit an inherited view in odoo?如何正确继承odoo中的继承视图?
【发布时间】:2018-05-26 14:54:01
【问题描述】:

我一直在尝试定位视图中的继承元素,但它对我不起作用。

所以我有一个view,它继承自hr.contract 的表单视图,如下所示:

  <record id="hr_contract_view_form_cayor" model="ir.ui.view">
    <field name="name">name</field>
    <field name="model">hr.contract</field>
    <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/>
    <field name="arch" type="xml">
        <data>
            <!-- more elements define with xpath -->
            <xpath expr="//field[@name='job_id']" position="after">
                <field name="retirement_age"/>
            </xpath>
            ...
            <xpath expr="//page[@name='information']" position="after">
                <page string="Allowances" groups="hr_payroll.group_hr_payroll_user">

                    <group>
                        <group name="allowances_group1">
                            ...
                            <field name="car_allowance"/>
                            ...
                        </group>
                        <group name="allowances_group2">
                            ...
                        </group>
                    </group>
                </page>
            </xpath>
        </data>
    </field>
</record>

我已经定义了一个新的文件来继承这个form view,它添加了一个新的field,如下:

<record id="hr_contract.hr_contract_view_form_inherited" model="ir.ui.view">
    <field name="name">hr.contract.grade.rank.form.inherit</field>
    <field name="model">hr.contract</field>
    <field name="inherit_id" ref="module.hr_contract_view_form_cayor"/>
    <field name="arch" type="xml">
         <data>
            <xpath expr="//group[@name='allowances_group1']" position="inside">
                <field name="medical_allowance" />
            </xpath> 
         </data>
    </field>
</record>

但是当我升级我的模块时,我收到以下错误:

Field `retirement_age` does not exist

如何正确继承第一个字段并添加我的新字段?

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

    标签: odoo-10


    【解决方案1】:

    请试试这个代码:

    Python:

    class HrContract(models.Model):
        _inherit = 'hr.contract'
    
        retirement_age = fields.Char(string="Retirement Age:")
    

    XML:

    <record id="hr_contract_view_form_cayor" model="ir.ui.view">
        <field name="name">name</field>
        <field name="model">hr.contract</field>
        <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/>
        <field name="arch" type="xml">
            <data>
                <!-- more elements define with xpath -->
                <xpath expr="//field[@name='job_id']" position="after">
                    <field name="retirement_age"/>
                </xpath>
            </data>
        </field>
    </record>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2015-08-23
      • 2023-01-30
      • 1970-01-01
      • 2010-11-17
      • 2011-05-03
      相关资源
      最近更新 更多