Odoo Help


How to create a many2one based on a many2many relation?

Henrique de Paula Lopes
on 11/3/16, 1:26 PM 1,290 views

Hey there!

Let's suppose that I'm working on a system that allows the user to create a product and assign different tags for that product (as a many2many relationship - a lot of tags already exist and the user can assign as many as he wants to a specific product). I want, however, to also create a field that will make one of these assigned tags "special". I want the user to be able to select one tag among all the tags he have previously assigned to this specific product. How can I do that? so far, I've tried to create a many2one field with a "compute" function, returning all tags assigned to the product as a list of (id, tag_name) pairs, but it didn't work. 

Anyone know how to do it? Thanks in advance.


Ameera PP

--Ameera PP--
--Ameera PP--

Ameera PP
On 11/4/16, 2:22 AM

Hello Henrique,

Try this:

create fields in python file :

'contact_person_many': fields.many2many('dispatch.contact.person', string='Contact Persons', required=True),        'contact_person_one': fields.many2one('dispatch.contact.person', string='Contact Person'),

def onchange_contact_person_many(self, cr, uid, ids, contact_person_many, context=None):
        if contact_person_many:
            li_emp = []

            for i in contact_person_many[0][2]:

            emp = tuple(li_emp)     

           return {'domain': {'contact_person_one': [('id', 'in', emp)]}}

     In xml file:

<field name="contact_person_many" widget="many2many_tags" on_change="onchange_contact_person_many(contact_person_many)"/>                      

<field name="contact_person_one"/>

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

1 follower(s)


Asked: 11/3/16, 1:26 PM
Seen: 1290 times
Last updated: 11/5/16, 1:16 AM