在osv.osv提供了一个get_xml_id寻找所提供的数据库ID的XML标识方法.做相反的最佳方法是什么?
知道XML Id(它是在数据加载文件中定义的),我如何获得相应的Database Id,以便我可以在tour Python代码中引用它?
Dan*_*eis 10
该ir.model.data模型还有一个get_object()方法,在给定模型名称和xml_id的情况下返回可浏览记录.
那么,另一种解决方案可能是:
m = self.pool.get('ir.model.data')
id = m.get_object(cr, uid, 'base', 'user_root').id
Run Code Online (Sandbox Code Playgroud)
该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]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4775 次 |
| 最近记录: |