Hi,
I have a situation where i need to get the XML id of a record from code.For example i need to get the XML id of a user group(Currently i have the id of that particular group).
Thanks
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hi,
I have a situation where i need to get the XML id of a record from code.For example i need to get the XML id of a user group(Currently i have the id of that particular group).
Thanks
Hi,
You can get it from the table ir.model.data by searching using the id and the model name, suppose if you have to get the external ID of the record with ID 10 in the model res.groups, search like this,
domain = [('model', '=', 'res.groups'), ('res_id', '=', 10)]
model_data = self.env['ir.model.data'].search(domain, limit=1)
xml_id = "%s.%s" % (model_data.module, model_data.name)
To see this table in the UI activate the debug mode and navigate to Settings -> Technical -> Sequence & Identifiers -> External Identifiers
You can see similar example in the odoo code itself, see the _get_external_ids function inside this file https://github.com/odoo/odoo/blob/13.0/odoo/models.py
Thanks
Thanks
Great trick :-)
You can browse record and call the function get_external_id()
xmlid = record.get_external_id()
also if you want to give an XML ID to ID by accessing Settings > Technical > Sequence & Identifiers > External Identifiers
If your record didn't exist there (by search the ID and models name), just create a new one with your preference external ID, models name, and the record ID
Using this answer from Ray Carnes this code works for me in Odoo 13:
product_id = fields.Many2one('product.product', 'Product')
prod_ext_id = fields.Char('ID Ext Product', compute='compute_ext_id_prod')
def compute_ext_id_prod(self):I hope it helps!
for record in self:
res = record.product_id.get_external_id()
record.prod_ext_id = False
if res.get(record.product_id.id):
record.prod_ext_id = res.get(record.product_id.id)
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
1
Dec 22
|
3256 | ||
|
1
Jun 24
|
2411 | ||
|
0
Oct 23
|
40774 | ||
|
1
Oct 23
|
3590 | ||
|
2
Feb 23
|
4305 |
Hope you are looking this:
res = self.env.ref('account.invoice_supplier_form')