6

は、提供されたデータベース ID の XML ID を検索osv.osvするメソッドを提供します。get_xml_id逆にどうするのが一番いいの?

XML Id (データ ロード ファイルで定義されている) を知っている場合、ツアー Python コードで参照できるように、対応するデータベース ID を取得するにはどうすればよいですか?

4

2 に答える 2

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
于 2012-10-01T13:10:10.900 に答える
7

The ir_model_data object has a _get_id() method that does what you're looking for. You can see it in use in 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]
于 2012-01-04T00:02:06.833 に答える