Odoo Help


Using xml_id for attrs

valentin chemiere
on 8/6/13, 12:35 PM 2,869 views


I want to hide some columns in sale order form depends to product selected.
I think i can use the product's xml_id like this :
<field name="myfield" attrs="{'invisible': [('product_id', '!=', ref('product.my_product'))]}"/>

but i have an error :

NameError: name 'ref' is not defined

What is wrong with my attrs? There is another method to hide a field when a particular product is selected?



Sudhir Arya (ERP Harbor Consulting Services)

--Sudhir Arya (ERP Harbor Consulting Services)--
| 6 8 8
Ahmedabad, India
--Sudhir Arya (ERP Harbor Consulting Services)--

• Co-Founder & Co-Owner at ERP Harbor Consulting Services

• ERP Consultant / ERP Customization / TechnoFunctional Expert

• Sound knowledge in Python, Odoo (Open ERP), XML, PostgreSQL

• Domain knowledge of Sale Management, Purchase Management, Warehouse Management, Manufacturing, Multi Company Configuration & Management, HR Management, Medical Management, Construction Management, Education Management, Point of Sale, Third Party Integrations

• Positive attitude and quick Learner

• Good analytical skill, quick bug and issue tracing and find the solution

• Good knowledge and experience in payment gateway integration with Odoo

• Ready to accept new challenges

• Active Memeber On Stackoverflow 




Sudhir Arya
ERP Harbor Consulting Services
Sudhir Arya (ERP Harbor Consulting Services)
On 2/15/17, 2:09 PM

Hi Valentine,

By overriding fields_view_get you can do so.

Reference: fields_view_get example

Marvin Taboada
On 9/9/15, 11:48 PM

Sorry valentin, you can't do this.

`ref()` can only be used inside `eval` XML attributes (which is evaluated by Odoo's `safe_eval` module) as in the following example:


If your product is well known (you're already referring it by their External-ID in your example), you may try referring other field with a known value, like the product `code` ("Internal Reference") or  `ean13` ("EAN13 Barcode"):

<field name="myfield" attrs="{'invisible': [('product_id.code', '!=', 'SOME.PRODUCT.CODE')]}"/>


Aleksander Nøkland
On 2/15/17, 9:38 AM

In Odoo10 you can do the following:

<field name="myfield" attrs="{'invisible': [('product_id','!=', %(other_module.xml_id)d)]}"/>

Source: https://answers.launchpad.net/openobject-server/+question/181987

Whoops. Didn't read the entire question.

You can still use this for xml-id's in attrs at least...

Norges Eiendomsfinans AS, Aleksander Nøkland
on 2/15/17, 9:40 AM

Tarek Mohamed Ibrahim

--Tarek Mohamed Ibrahim--
| 5 3 7
Gîza, Egypt
--Tarek Mohamed Ibrahim--

I am an old VFP developer on ERP

I have moved to 2p since Nov-2014 and started developing with Python on Odoo.



Tarek Mohamed Ibrahim
On 9/9/15, 2:54 PM

I think you can't hide columns in tree view depending on some choices in the runtime. This is straightforward in form views and could be achieved using attrs tag.

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.


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

0 follower(s)


Asked: 8/6/13, 12:35 PM
Seen: 2869 times
Last updated: 10/11/17, 10:18 AM