Ошибка: элемент '‹field name = x y z›' не может быть найден в родительском представлении.

Я создал вычисляемое поле в коде Python, bom.py (см. Ниже) и добавил это поле в представление bom_view.xml. Имя поля - «old_default_code», а связанная функция в коде Python - _old_default_code (). Однако, когда я пытаюсь обновить (обновить) модуль, я получаю сообщение об ошибке:

"Error details: "Field `old_default_code" does not exist"

Что я делаю неправильно?

Вот фрагмент кода из bom.py:

class mrp_bom(osv.osv):
    _inherit = 'mrp.bom'

        def _old_default_code(self, cr, uid, ids, name, arg, context=None):
            return True

    _columns = {'x_roll_material': fields.float('Standard Material Cost', digits=(16, 4), readonly=True),
        'x_bom_time_average': fields.float('Average BOM Lead Time', digits=(16, 4), readonly=True),
        'x_bom_time_last': fields.float('Last BOM Lead Time', digits=(16, 4), readonly=True),
        'old_default_code' : fields.function(_old_default_code, type='char', size=32, method=True, store=False, multi=False) }

и вот код XML:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <!-- mrp_bom -->
        <record id="adamson_mrp_bom_form_view" model="ir.ui.view">
            <field name="name">adamson.mrp.bom.form.view</field>
            <field name="model">mrp.bom</field>
            <field name="type">form</field>
            <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
            <field name="arch" type="xml">
                <field name="old_default_code" />
                <xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='sequence']" position="before" >

                     <button class="oe_inline oe_stat_button" type="object" string="Go!" icon="gtk-go-forward" name="action_go" 
                     attrs="{'invisible':[('old_default_code','=', False)]}"  />
                               </xpath>

person SmithMcPatrick    schedule 23.12.2014    source источник


Ответы (1)


Когда вы наследуете представление, это означает, что вы можете поместить поле в ссылку на элементы, присутствующие в родительском представлении.

Представление, которое вы показали здесь, в котором вы пытались сразу поместить поле old_default_code без какой-либо ссылки на существующее поле.

Например, когда вы помещаете новое поле в модель по наследованию, тогда в представлении вам нужно ссылаться на поле, которое есть в родительском представлении, и использовать параметр position, имеющий такие значения, как атрибуты 'after', 'before', ' ', вы можете разместить новое добавленное поле.

Здесь вы пытаетесь сразу поместить поле old_default_code, поэтому пытается найти это поле в родительском представлении, которого нет, и из-за этого вы столкнулись с ошибкой.

person Hardik Patadia    schedule 23.12.2014