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