Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
1 Răspunde
2047 Vizualizări

After saving the child record with the parent ID as a reference, the parent ID should not appear in the Many2One field.

I have written the following code but it is not working. it is working in odoo 15 but not odoo 17


class CustomPreset(models.Model):

    _name = 'custom.preset'

    _inherit = ['mail.thread', 'mail.activity.mixin']


    name = fields.Many2one('custompreset.master', string='Name')

    rel_id = fields.One2many('custompreset.child', 'parent_field_id', string='Detail')

    search_dp = fields.Char(string='Search')



@api.onchange('search_dp')

    def onchange_test_domain_fiedl(self):

        mini_rec = self.env['custom.preset'].search([]).name

        available_ids = []

        for i in mini_rec:

            available_ids.append(i.id)

          return {'domain': {'name': [('id', '!=', available_ids)]}}



Imagine profil
Abandonează
Cel mai bun răspuns

Hello Yoganandam Gopal,

One possible issue could be with the "onchange" method. Make sure you don’t have two methods with the same name.


Also, it’s important to ensure that you have added the necessary dependencies to your "__manifest__.py".

Here’s a revised version of your code:

class CustomPreset(models.Model):

    _name = 'custom.preset'

    _inherit = ['mail.thread', 'mail.activity.mixin']


    name = fields.Many2one('custompreset.master', string='Name')

    rel_id = fields.One2many('custompreset.child', 'parent_field_id', string='Detail')

    search_dp = fields.Char(string='Search')


    @api.onchange('search_dp')

    def onchange_test_domain_field(self):

        mini_rec = self.env['custom.preset'].search([('id', '!=', self.id)]).name

        available_ids = []

        for i in mini_rec:

            available_ids.append(i.id)

        return {'domain': {'name': [('id', 'not in', available_ids)]}}


In this revised code, I’ve changed the search domain in the "onchange" method to exclude the current record’s ID. This should prevent the current record from appearing in the "Many2one" field dropdown.


Hope this helps

Regards,
Maciej Burzymowski

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
0
mar. 15
5106
1
iul. 24
3026
0
feb. 24
14
3
dec. 23
1828
4
mai 25
2578