OpenERP相关字段返回空行

OpenERP相关字段返回空行,openerp,odoo,Openerp,Odoo,我有两个相关的字段,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_def

我有两个相关的字段,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>

adamson.mrp.bom.tree.view.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'
    :从我得到的信息(可能是错误的),它只有在引用链的最后一项是引用时才有用(这里是一个字符字段)

    通过此更改(在主版本上),当我更改crm.bom记录的产品时,将填充该记录的
    类别说明

  • 不直接使用
    x_nk_categ_id
    ,而是复制参考链

    此更改使其在安装模块时正常工作:所有
    类说明
    列都已填充

我猜在安装模块时,只有现有字段用于填充相关字段