Skip to Content
Menu
This question has been flagged

Hi, 

I have two new models I added :


    class Model1(models.Model):
    _name = 'model1'
    
_description = 'model1'

    
name = fields.Char(string='Nom')
    
category = fields.Many2many('model2', string='model2')


    class Model2(models.Model):
    _name = 'model2'
    
_description = 'model2'
    
name = fields.Char(string='Nom')


Model1 can contain many model2, and model2 can be contained in different model1. On my hr.employee model, I would like my user to select a model1, then display a list of model2 according to the model1, in order to make him select one of these model2. How can I achieve that ? I already tried domains, but it does not seem to work with domain.

Avatar
Discard
Best Answer

see how to return dynamic domains from python side: https://www.youtube.com/watch?v=dq5Vtj_pwuI&t=197s

Avatar
Discard
Best Answer

Hi,

Please try the below:

from odoo import fields, models,api

class HrEmployee(models.Model):
_inherit = 'hr.employee'

model1_id = fields.Many2one('model1')
model2_id = fields.Many2one('model2')

@api.onchange('model1_id')
def onchange_model1_id(self):
for rec in self:
return {'domain': {'model2_id': [('model1_id', '=', rec.model1_id.id)]}}

Regards

Avatar
Discard
Related Posts Replies Views Activity
1
Oct 22
2445
1
Jan 22
1968
8
Feb 17
6965
0
Jan 17
4742
0
Dec 15
3944