Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
2043 Vues

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)]}}



Avatar
Ignorer
Meilleure réponse

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

Avatar
Ignorer
Publications associées Réponses Vues Activité
0
mars 15
5106
1
juil. 24
3022
0
févr. 24
14
3
déc. 23
1826
4
mai 25
2574