2015-02-06 1 views
0

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

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> 

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

enter image description here

ответ

2

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

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

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

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

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

  • не используя x_nk_categ_id непосредственно, но дублируя эталонную цепь

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

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

+0

Да, это сработало. Большое спасибо! – Nash