From 8806bc4e33b9efa37431ca08f23c76863c635016 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Tue, 28 Jan 2020 21:27:45 +0300 Subject: [PATCH] fix transfer script --- apps/partner/transfer_data.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/partner/transfer_data.py b/apps/partner/transfer_data.py index acda6c2c..de5dd43c 100644 --- a/apps/partner/transfer_data.py +++ b/apps/partner/transfer_data.py @@ -1,7 +1,7 @@ from pprint import pprint from establishment.models import Establishment -from partner.models import Partner +from partner.models import Partner, PartnerToEstablishment from transfer.models import EstablishmentBacklinks from transfer.serializers.partner import PartnerSerializer @@ -33,6 +33,20 @@ def transfer_partner(): else: pprint(f"Partner serializer errors: {serialized_data.errors}") + # here we manually delete duplicates + partners_to_remove_ids = [] + for partner_establishment_proxy in PartnerToEstablishment.objects.all(): + related_partner = partner_establishment_proxy.partner + actual_partner = Partner.objects.filter(type=related_partner.type, + url=related_partner.url, + name=related_partner.name).first() # exists for sure + if related_partner.pk != actual_partner.pk: + partners_to_remove_ids.append(related_partner.pk) + partner_establishment_proxy.partner = actual_partner + partner_establishment_proxy.save() + + Partner.objects.filter(id__in=partners_to_remove_ids).delete() + data_types = { "partner": [transfer_partner]