From 5a19034f0201e4ab713c0f282b71eac1eccf7ab3 Mon Sep 17 00:00:00 2001 From: gzbender Date: Mon, 26 Aug 2019 17:41:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=B0=D0=B3=20/=20=D0=92=20=D0=B0=D0=B4?= =?UTF-8?q?=D0=BC=D0=B8=D0=BD=D0=BA=D0=B5=20=D0=BD=D0=B5=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D1=83=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B5=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BD=D1=8F=D1=82=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/serializers/school.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/api/v1/serializers/school.py b/api/v1/serializers/school.py index caceba24..7bb15b00 100644 --- a/api/v1/serializers/school.py +++ b/api/v1/serializers/school.py @@ -76,18 +76,18 @@ class SchoolScheduleSerializer(serializers.ModelSerializer): return schoolschedule def dispatch_gallery(self, schoolschedule, gallery): + images = list(SchoolScheduleImage.objects.filter(schoolschedule=schoolschedule).values_list('img', flat=True)) + new_images = [] for image in gallery: - - imgs = SchoolScheduleImage.objects.filter( - schoolschedule=schoolschedule, - img=image['img'] - ) - - if not imgs.exists(): - si = SchoolScheduleImage.objects.create( - schoolschedule=schoolschedule, - img=image['img'], - ) + if image.get('img'): + if image['img'].id not in images: + SchoolScheduleImage.objects.create( + schoolschedule=schoolschedule, + img=image['img'], + ) + new_images.append(image['img'].id) + SchoolScheduleImage.objects.filter(schoolschedule=schoolschedule, img__isnull=True).delete() + SchoolScheduleImage.objects.filter(schoolschedule=schoolschedule, img__in=set(images) - set(new_images)).delete() def to_representation(self, instance): return SchoolScheduleSerializerImg(instance, context=self.context).to_representation(instance)