提供osv.osv
了一种get_xml_id
方法来查找提供的数据库 ID 的 XML Id。做相反的最好方法是什么?
知道 XML Id(在数据加载文件中定义),如何获取对应的 Database Id,以便在游览 Python 代码中引用它?
提供osv.osv
了一种get_xml_id
方法来查找提供的数据库 ID 的 XML Id。做相反的最好方法是什么?
知道 XML Id(在数据加载文件中定义),如何获取对应的 Database Id,以便在游览 Python 代码中引用它?
该ir.model.data
模型还有一个get_object()
方法返回一个给定模型名称和 xml_id 的可浏览记录。
因此,另一种解决方案可能是:
m = self.pool.get('ir.model.data')
id = m.get_object(cr, uid, 'base', 'user_root').id
该ir_model_data
对象有一个_get_id()
方法可以满足您的需求。您可以在res_users._get_admin_id()
方法中看到它的使用情况:
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]