使用onchange函数在openerp / odoo中获取模型名称而不是模型ID

时间:2015-09-04 10:36:51

标签: openerp onchange

我正在使用openerp7。我有一个on_change函数,它给了我模型ID。我怎样才能得到模型的名称? 到目前为止,这是我的代码:

_columns={
    'model': fields.many2one('ir.model', string='Models'),
    'model_name': fields.char('Model name')
}

def onchange_model(self, cr, uid, ids, model, context=None):
    print model #gives me back the id of the model(if i choose res.partner it gives me {int}73)
    # [...]
<field name="model_name" on_change="onchange(model)"/>

所以我的问题很简单:如何获取模型的名称(例如res.partner)。

2 个答案:

答案 0 :(得分:2)

检查这是否有效(我没试过,但它应该有用)

ir_model_obj = self.pool.get('ir.model')
models_ids = ir_model_obj.search(cr, uid, [('id', '=', model)])
for record in ir_model_obj.browse(cr, uid, models_ids, context=context):
    _logger.info(record.model) # You get the model here
    _logger.info(record.name) # You get the model name here

答案 1 :(得分:0)

有关最新版本(V13)

型号名称是

/

其中的模块名称带有function extractLastWords(url) { return url.split('/').slice(-2).join('/') } var u = 'https://app.asana.com/0/1154029233771298/1161783458298546' extractLastWords(u) // => "1154029233771298/1161783458298546" 表示法。如果只需要模型名称,则需要执行以下操作:

print(self._name)