تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
8731 أدوات العرض

Hi, I try to get a self.id by a simple "for rec in self:"

but I get a full object any idea why?


class Partner(models.Model):

    _inherit = 'res.partner'


    rappel = fields.Float(string='Rappel')


    @api.onchange('rappel')

    def compute_rappel_invoice_line(self):

        _logger.info('self : %s' % self)     # res.partner(<odoo.models.NewId object at 0x7f35a7b0ea98>,)

        _logger.info('self.ids : %s' % self.ids) # []

        _logger.info('self.id : %s' % self.id)  # <odoo.models.NewId object at 0x7f35a7b0ea98>

        for rec in self:

            _logger.info('rec : %s' % rec)      # res.partner(<odoo.models.NewId object at 0x7f35a7b0ea98>,)

            _logger.info('rec.id : %s' % rec.id)   # <odoo.models.NewId object at 0x7f35a7b0ea98>



            invoices = self.env["account.invoice"].search([("partner_id", "=", self.id),("state", "=", 'draft')])

            if invoices:

                for invoice in invoices:

                    lines = self.env["account.invoice.line"].search([("invoice_id", "=", invoice.id)])

                    for line in lines:

                        line.write({'rappel': self.rappel})

الصورة الرمزية
إهمال
أفضل إجابة

Hi,

As it is onchange function try self._origin, it will return the id.


Thanks

الصورة الرمزية
إهمال
الكاتب

it works! How did you know this solution? It is not in Odoo docs.

المنشورات ذات الصلة الردود أدوات العرض النشاط
5
فبراير 19
10191
1
فبراير 24
2697
1
ديسمبر 22
7043
1
يونيو 22
6353
1
فبراير 23
2130