osv.osv
提供了一个get_xml_id
方法来查找提供的数据库ID的XML ID。 做相反的最好方法是什么?如何从XML ID获取数据库ID
了解XML Id(它是在数据加载文件中定义的),如何获取相应的数据库ID,以便我可以在巡回Python代码中引用它?
osv.osv
提供了一个get_xml_id
方法来查找提供的数据库ID的XML ID。 做相反的最好方法是什么?如何从XML ID获取数据库ID
了解XML Id(它是在数据加载文件中定义的),如何获取相应的数据库ID,以便我可以在巡回Python代码中引用它?
ir_model_data
对象有一个_get_id()
方法可以完成要查找的任务。你可以看到它在使用中the res_users._get_admin_id()
method:
def _get_admin_id(self, cr):
if self.__admin_ids.get(cr.dbname) is None:
ir_model_data_obj = self.pool.get('ir.model.data')
mdid = ir_model_data_obj._get_id(cr, 1, 'base', 'user_root')
self.__admin_ids[cr.dbname] = ir_model_data_obj.read(cr, 1, [mdid], ['res_id'])[0]['res_id']
return self.__admin_ids[cr.dbname]
的ir.model.data
机型还具有get_object()
方法返回给定的型号名称和xml_id可浏览记录。
因此,另一种解决方案可能是:
m = self.pool.get('ir.model.data')
id = m.get_object(cr, uid, 'base', 'user_root').id
更清洁的解决方案,谢谢。 – Yajo 2014-02-25 09:14:06
感谢。管理得到单线解决方案工作:self.pool.get('ir.model.data')。get_object(cr,uid,'hr_timesheet','analytic_journal')。ID – 2012-01-12 12:23:10