Odoo Help


How to apply attrs based on assigned groups to logged in user?

Anil R. Kesariya (Jupical Technologies)
on 5/13/15, 11:11 PM 3,932 views

Hello everybody,

My Goal is to make field readonly based on assigned group to logged in user.

I want to make few field readonly based on assgined groups to logged in user.

I have tried these two methods to set attrs for perticular field.

For Eg, I want to make readonly field on SO form.

We have user_id field inside SO, so i have applied like this on xml part.

This doesn't  work!

<field name="field name" position="attributes">

<attribute name="attrs">{'readonly':[('group_name','in',[group.id for group in user_id.groups_id])]}</attribute>


This is too does not work!

<field name="field name" position="attributes">-->

<attribute name="attrs">{'readonly':[('group_name','in',[group.id for group in user.groups_id])]}</attribute>


Even we have user_id field inside the model, its give user_id field is not defiend. how?

I have tried to apply the same thing based on_change method too!

Is it possible to set attrs on field using onchange method?

Anyboday has idea about this?

Thanks in advance!



Yes you can apply attributes [visible/invisible, readonly] based on different users. The idea is to create a Boolean field and make this field True/False on onchange of some field, and later use that boolean field in attr.

Have a look into code: http://learnopenerp.blogspot.com/2016/10/how-to-visible-and-invisible-fields-in.html

Hope its helpful for you and others.


on 3/22/18, 1:07 AM

Atchuthan - Technical Consultant, Sodexis Inc

--Atchuthan - Technical Consultant, Sodexis Inc--
| 5 5 8
Puducherry, India
--Atchuthan - Technical Consultant, Sodexis Inc--
Passionate coder in Python/Odoo(formerly known as OpenERP).

Contact me via GMail: atchuthantu@gmail.com via Skype: atchuthan_skype
via Linkedin: http://in.linkedin.com/in/atchuthantu
Atchuthan - Technical Consultant, Sodexis Inc
On 5/14/15, 1:10 AM

You could inherit your FORM view with a particular group access to modify readonly attribute.

Please check the sample code available here 


To add your group:
<field name="groups_id" eval="[(4, ref('MODULE_NAME.GROUP_EXTERNAL_ID'))]"/>

To replace other groups and add your group only: <field name="groups_id" eval="[(6,0,[ref('MODULE_NAME.GROUP_EXTERNAL_ID')])]" />

Thanks for this ans. but this will only set perticuler group to field right? or it will make it readonly that field rest of groups those are not assigned to that field?

Anil R. Kesariya (Jupical Technologies)
on 5/14/15, 1:21 AM

Anil R. Kesariya (Jupical Technologies)

--Anil R. Kesariya (Jupical Technologies)--
| 7 6 8
Rajkot, India
--Anil R. Kesariya (Jupical Technologies)--

Odoo Techno Functional Expert

* Engaged with odoo since May - 2012.

* Customise existing module or develop new module base on customer requirement.

* Played key developer role in many past and running projects.

* Expert in requirement gathering of business and transforming requirement into odoo platform.

* Major expertise in core modules, database, report development and theme development.

* Integration expert.

Linkedin  : https://in.linkedin.com/in/anil-kesariya-97b20a66

Anil R. Kesariya (Jupical Technologies)
On 5/14/15, 1:10 AM

Hi All,

I found solution to achive this goal.

Created boolean field on backend which set true based on parnter onchange method.

That onchange method will search that current logged in user is belongs to that specific group than it will return true for that boolean.

Based on boolean value i have applied attrs on field to make it readonly.


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

3 follower(s)


Asked: 5/13/15, 11:11 PM
Seen: 3932 times
Last updated: 12/5/17, 10:30 PM