Odoo Help

2

How to reference record in database by is XML id?

By
Raffaele
on 9/3/15, 6:02 AM 5,698 views

Hallo

I'm writing a parser for an Aeroo report for expenses.

In the py code I need to make some reference to specific product categories, created within the same module via XML serialization, eg.:


<record id="park" model="product.category"> <field name="parent_id" ref="hr_expense.cat_expense"/> <field name="name">Parking tickets</field> </record>


How can I reference in the py code the category having the id "park"?

7

Hello Raffaele,

All the xml records are stored in "ir.model.data" object. There is a method called "get_object_reference" which gives you the database ID from xml ID.

In this method you have to pass module name where xml record is created and xml ID of the record.

Example:

V7:

self.pool.get('ir.model.data').get_object_reference(cr, uid, 'module_name', 'xml_id_of_record')[1]

V8:

record_id = self.env.ref('module_name.xml_id_of_record').id
3
Yogesh
On 9/3/15, 9:24 AM

Hi,

Solution of Serpent Consulting Services Pvt. Ltd. is from V7 and works in V8 as well.
for anyone who is needing it in V8 you can do it in a simpler way with new api

record_id = self.env.ref('module_name.xml_id_of_record').id 

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)

Stats

Asked: 9/3/15, 6:02 AM
Seen: 5698 times
Last updated: 3/13/17, 11:59 AM