From e59765eaf7be5cd95c1852adbcab0526b4021cb1 Mon Sep 17 00:00:00 2001 From: Nicolas ROCHE Date: Thu, 2 Nov 2023 09:20:56 +0100 Subject: [PATCH] toulouse-maelis: prevent creating invoice in concurency (#82706) --- passerelle/contrib/toulouse_maelis/models.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index 805157d1..f9e19b04 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -4041,16 +4041,16 @@ class ToulouseMaelis(BaseResource, HTTPResource): pass else: for item in result: - try: - invoice = self.invoice_set.get(regie_id=regie_id, invoice_id=item['numInvoice']) - except Invoice.DoesNotExist: - invoice = self.invoice_set.create( - regie_id=regie_id, - invoice_id=item['numInvoice'], - family_id=family_id, - maelis_data=item, - maelis_data_update_date=now(), - ) + invoice, created = self.invoice_set.get_or_create( + regie_id=regie_id, + invoice_id=item['numInvoice'], + defaults={ + 'family_id': family_id, + 'maelis_data': item, + 'maelis_data_update_date': now(), + }, + ) + if created: self.logger.info("Ajout de %s sur la famille '%s'", repr(invoice), family_id) else: if invoice.family_id != family_id: