OpenERP - 哪个字段从重写的 name_get() 函数中获取值?
OpenERP - which field is getting the value from overridden name_get() function?
我希望这个问题是有道理的。我的目标是显示 name_get() 中定义的字段。我已经覆盖 mrp_bom class 中的 name_get() 函数,附上代码。但是,我不知道哪个字段将从函数 name_get() 中获得 return 值。非常感谢任何见解!
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_class_desc': fields.related('product_id', 'categ_id', 'name',
type='char', 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),
'categ_id': fields.related('product_id', 'categ_id', type='integer',
relation='product.product', string='Categ_ID',
store=True, readonly=True),
'x_category_code': fields.related('product_id', 'categ_id',
'x_category_code', type='char', string='Class
Description', store=True, readonly=True),
}
def name_get(self, cr, user, ids, context=None):
if context is None:
context = {}
if isinstance(ids, (int, long)):
ids = [ids]
if not len(ids):
return []
def _name_get(d):
name = d.get('name','')
code = context.get('display_default_code', True) and
d.get('x_category_code',False) or False
if code:
name = '[%s] %s' % (code,name)
return (d['id'], name)
result = []
for product_category in self.browse(cr, user, ids, context=context):
mydict = {
'id': product_category.id,
'name': product_category.name,
'x_category_code':
product_category.x_category_code,
}
result.append(_name_get(mydict))
return result
name_get方法用于显示many2one字段中记录的值。例如,在销售订单行中,如果您 select 一个产品,则销售订单行中显示的字段 'product_id' 的值必须是 'name_get' 在 product.product对象。
没有显示name_get结果的特殊字段。如果需要将 name_get 方法的结果放在记录的字段中,则应使用属性 'compute' 创建:http://odoo-new-api-guide-line.readthedocs.org/en/latest/fields.html#computed-fields
您可以在此处找到更多信息:http://odoo-new-api-guide-line.readthedocs.org/en/latest/environment.html?highlight=name_get
希望对你有所帮助。
我希望这个问题是有道理的。我的目标是显示 name_get() 中定义的字段。我已经覆盖 mrp_bom class 中的 name_get() 函数,附上代码。但是,我不知道哪个字段将从函数 name_get() 中获得 return 值。非常感谢任何见解!
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_class_desc': fields.related('product_id', 'categ_id', 'name',
type='char', 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),
'categ_id': fields.related('product_id', 'categ_id', type='integer',
relation='product.product', string='Categ_ID',
store=True, readonly=True),
'x_category_code': fields.related('product_id', 'categ_id',
'x_category_code', type='char', string='Class
Description', store=True, readonly=True),
}
def name_get(self, cr, user, ids, context=None):
if context is None:
context = {}
if isinstance(ids, (int, long)):
ids = [ids]
if not len(ids):
return []
def _name_get(d):
name = d.get('name','')
code = context.get('display_default_code', True) and
d.get('x_category_code',False) or False
if code:
name = '[%s] %s' % (code,name)
return (d['id'], name)
result = []
for product_category in self.browse(cr, user, ids, context=context):
mydict = {
'id': product_category.id,
'name': product_category.name,
'x_category_code':
product_category.x_category_code,
}
result.append(_name_get(mydict))
return result
name_get方法用于显示many2one字段中记录的值。例如,在销售订单行中,如果您 select 一个产品,则销售订单行中显示的字段 'product_id' 的值必须是 'name_get' 在 product.product对象。
没有显示name_get结果的特殊字段。如果需要将 name_get 方法的结果放在记录的字段中,则应使用属性 'compute' 创建:http://odoo-new-api-guide-line.readthedocs.org/en/latest/fields.html#computed-fields
您可以在此处找到更多信息:http://odoo-new-api-guide-line.readthedocs.org/en/latest/environment.html?highlight=name_get
希望对你有所帮助。