diff --git a/apps/location/views/back.py b/apps/location/views/back.py index e306bc6e..4f29582d 100644 --- a/apps/location/views/back.py +++ b/apps/location/views/back.py @@ -7,6 +7,7 @@ from utils.permissions import IsCountryAdmin from utils.views import CreateDestroyGalleryViewMixin from rest_framework.permissions import IsAuthenticatedOrReadOnly from django.shortcuts import get_object_or_404 +from django.db import IntegrityError from utils.serializers import ImageBaseSerializer from location.filters import RegionFilter @@ -81,6 +82,15 @@ class CityGalleryCreateDestroyView(common.CityViewMixin, return gallery + def create(self, request, *args, **kwargs): + try: + return super(CityGalleryCreateDestroyView, self).create(request, *args, **kwargs) + except IntegrityError as e: + if not 'unique constraint' in e.args[0]: + raise e + models.CityGallery.objects.filter(city=kwargs['pk'], is_main=request.data['is_main']).delete() + return super(CityGalleryCreateDestroyView, self).create(request, *args, **kwargs) + class CityGalleryListView(common.CityViewMixin, generics.ListAPIView):