Поле, связанное с OpenERP, возвращает пустые строки

У меня есть два связанных поля: x_nk_categ_id и x_nk_class_desc. По какой-то причине поле «x_nk_class_desc» возвращает пустые строки. Я проверил в таблице mrp_bom, поле x_nk_categ_id правильно заполнено значениями categ_id, но столбец x_nk_class_desc пуст.

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

    _columns = {
                'x_nk_default_code': fields.related('product_id', 
                    'default_code', type='char', relation='product.product', 
                    string='Part Number', store=True, readonly=True),
                'x_nk_categ_id': fields.related('product_id', 'categ_id', 
                    type='many2one', relation='product.product', 
                    string='Product Category', store=True, readonly=True),
                'x_nk_class_desc': fields.related('x_nk_categ_id', 'name', 
                    type='char', relation='product.category', string='Class 
                    Description', store=True, readonly=True),
                'x_nk_item_desc': fields.related('product_tmpl_id', 'name', 
                    type='char', relation='product.template', string='Item 
                    Description', store=True, readonly=True),
        }

Вот мой XML-код:

<record id="adamson_mrp_bom_tree_view_2" model="ir.ui.view">
    <field name="name">adamson.mrp.bom.tree.view.2</field>
    <field name="model">mrp.bom</field>
    <field name="type">tree</field>
    <field name="inherit_id" 
        ref="adamson_systems_engineering.adamson_mrp_bom_tree_view" />
    <field name="arch" type="xml">
        <xpath expr="/tree/field[@name='product_id']" position="replace">
            <field name="x_nk_default_code" />
            <field name="x_nk_class_desc" />
            <field name="x_nk_item_desc" />                         
        </xpath>
    </field>
</record>

Вот как выглядит пустое описание класса:

введите здесь описание изображения


person Nash    schedule 06.02.2015    source источник


Ответы (1)


моя установка odoo немного отличается, но это (адаптировано к вашему случаю) работает для меня:

'x_nk_class_desc': fields.related('product_id', 'categ_id', 'name',
    type='char', string='Class Description', store=True, readonly=True),

два изменения, которые я сделал:

  • удаление relation='product.category' : из этого я понимаю (возможно, ошибочно), что это всего лишь полезно, если последний член цепочки ссылок является ссылкой (здесь это поле char)

    с этим изменением (в основной версии) Class Description записи crm.bom заполняется, когда я изменяю продукт этой записи.

  • не используя x_nk_categ_id напрямую, а дублируя цепочку ссылок

    это изменение заставило его работать нормально при установке модуля: весь столбец Class Description заполнен.

Я предполагаю, что когда модуль установлен, для заполнения связанных полей используются только существующие поля.

person ea-    schedule 06.02.2015