Как правильно наследовать унаследованное представление в odoo? - PullRequest
0 голосов
/ 26 мая 2018

Я пытался нацелить унаследованный элемент в представлении, но он не работает для меня.

Итак, у меня есть 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

Как правильно наследовать отпервый, и добавить мое новое поле?

Любая помощь будет принята с благодарностью, заранее спасибо.

1 Ответ

0 голосов
/ 28 мая 2018

Пожалуйста, попробуйте этот код:

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>
...