OpenERP - 相关字段 returns 空行
OpenERP - related field returns empty rows
我有两个相关字段有问题,x_nk_categ_id 和 x_nk_class_desc。由于某种原因,字段 "x_nk_class_desc" 返回空行。我已检查 table 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>
这是Class描述在视图中的空旷程度:
我的 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
列已填满。
我猜是安装模块时,只使用现有字段来填充相关字段。
我有两个相关字段有问题,x_nk_categ_id 和 x_nk_class_desc。由于某种原因,字段 "x_nk_class_desc" 返回空行。我已检查 table 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>
这是Class描述在视图中的空旷程度:
我的 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
列已填满。
我猜是安装模块时,只使用现有字段来填充相关字段。