Odoo Help


Dynamically change choices in selection fields

on 5/1/13, 2:07 PM 5,319 views

I have a selection field with different choices in a form. How can I dynamically change the choices in an on_change function?

Mohamed arif
On 5/2/13, 2:59 AM

I think you need to change choice set in selection widget. If so my answer it is.

It is not possible to change choices of 'Selection' widget after once the values loaded. If you need to display different choices, you have to use multiple selection fields (with same label) with different set of choices and make one of them visible on change.


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 5/2/13, 2:25 AM

Just return the value of selection field from onchange based on your requirement.

return {'value': {'your_selection_field': 'your_selection_field_value'}}
On 5/2/13, 12:32 PM

Thanks for your answers. I solved my problem with 2 selection fields:

<field name="see_more" /> 
<field name="basic_selection"  attrs="{'invisible':[('see_more','==',False)]}"  />
<field name="extended_selection" attrs="{'invisible':[('see_more','==',True)]}"/>

I had a problem with the domain solution: the fields were correctly loaded when I opened the window but I couldn't change them dynamicaly when I checked the boolean field 'see_more'

However, with the chosen solution I had to adapt the python code that deals with the selection field...

Hi Mat, not in this subject, but near.. i want to display all partner related messages, in the lower part of the partner form, where alredy have a partner DOCUMENT related mail wall, but the document relation is th problem, cause i want to see there the ALL partner related messages(incoming outgoing). For this view the res.partner.emails.info.inherit responsible, but just one line : <field name="message_ids" widget="mail_thread" options="{"thread_level": 0}"/> Do u have maybe any idea, how can this set to receive all messages in this view? Thx

on 5/2/13, 2:04 PM

Sorry but I have never dealt with that part of openerp (mails, messages,...), I'm afraid I can't help you... Try to open a new subject, Good luck !

on 5/2/13, 3:02 PM

Thx any way

on 5/3/13, 6:02 AM
On 5/2/13, 7:23 AM

Best way should be to work with a domain filter on the field, showing you only a selection of values, depending on a condition. You may also use this as many2one field with a selection widget. Dont know if that would serve your purpose.

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: 5/1/13, 2:07 PM
Seen: 5319 times
Last updated: 3/16/15, 8:10 AM