如何从单个班级获得两个多个字段?

时间:2015-11-09 04:59:23

标签: python openerp

我有以下代码我想要这两个字段asset_catg_id和folio_num。这些应该可用于许多两个字段。如何为单个类编写2 _rec_name?

class asset_asset(osv.osv):
    _inherit = "asset.asset"
    #_name = "asset_asset"
    _rec_name= "folio_num"
    #_rec_name = "assetmodelid_add"
    _columns = {
        'name': fields.char('Asset Name', size=64),
        'company_id1': fields.many2one('res.company', 'Substation', required=True),
        #'place1': fields.many2one('asset.parentlocation', 'Location'),
        'asset_catg_id' : fields.many2one('asset.catg', 'Asset Catg Selection',select=True, required=True),
            'area_id' : fields.many2one('asset.name', 'Asset Name Selection', domain="[('asset_catg_id', '=', asset_catg_id)]", select=True, required=True),
        'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',domain="[('area_id', '=', area_id)]",),
        'folio_num' : fields.char('Folio No',),
        'asse_line':fields.one2many('asset.line','emp_id','Name Plate'),
        'asse_line2':fields.one2many('asset.part','emp_id1','Parts'),
               #'assed_modelid':fields.many2one('agile.portfolio1','Asset Model ID',select=True, required=True),
        'quantity': fields.char('Quantity',size=64),
        'uom': fields.char('Uinit of Measure',size=64),
        'model_no' : fields.char('Model', size=64),

        #'asset_id':fields.many2one('agile.portfolio','Asset ID'),

    }

3 个答案:

答案 0 :(得分:0)

在这种情况下,我们将覆盖name_get()方法模块

def name_get(self, cr, uid, ids, context={}):
    if not len(ids):
        return []

    res=[]

    for assest in self.browse(cr, uid, ids,context=context):
        res.append((assest.id, assest.asset_catg_id + ', ' + assest.folio_num))     

    return res

答案 1 :(得分:0)

如果你想在asset.asset ok中将资产类别名称显示为_rec_name 因此请创建以下文件:

'folio_num': fields.related('asset_catg_id', 'name', type="char", string="Folio Name"),

如果你想要显示名称,那么创建计算机文件就是'batter

答案 2 :(得分:0)

默认情况下,many2one字段显示名称字段或_rec_name中定义的字段。如果要显示其他字段的值,则需要覆盖对象中的name_get方法。

例如,我想在many2one字段中显示两个字段(name,name2):

def name_get(self, cr, uid, ids, context=None):
    if not len(ids):
        return []
    res = [(r['id'], r['name'] and '%s [%s]' % (r['name'], r['name2']) or r['name'] ) for r in self.read(cr, uid, ids, ['name', 'name2'], context=context) ]
    return res

您可以参考:ORM Method: name_get.

相关问题