From a81f3f079ae873da6795c75a7fd49b91e3be6635 Mon Sep 17 00:00:00 2001 From: dormantman Date: Wed, 4 Dec 2019 13:37:49 +0300 Subject: [PATCH 1/3] Changed url id to slug in back-office --- apps/establishment/serializers/back.py | 6 +++- apps/establishment/serializers/common.py | 4 ++- apps/establishment/tests.py | 36 ++++++++++++------------ apps/establishment/urls/back.py | 20 ++++++------- apps/establishment/views/back.py | 25 ++++++++++------ apps/timetable/serialziers.py | 8 +++++- apps/utils/serializers.py | 4 +++ apps/utils/views.py | 6 +++- 8 files changed, 69 insertions(+), 40 deletions(-) diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index dd16e861..a1b6cc4a 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -232,9 +232,13 @@ class EstablishmentBackOfficeGallerySerializer(serializers.ModelSerializer): def validate(self, attrs): """Override validate method.""" establishment_pk = self.get_request_kwargs().get('pk') + establishment_slug = self.get_request_kwargs().get('slug') + + search_kwargs = {'pk': establishment_pk} if establishment_pk else {'slug': establishment_slug} + image_id = self.get_request_kwargs().get('image_id') - establishment_qs = models.Establishment.objects.filter(pk=establishment_pk) + establishment_qs = models.Establishment.objects.filter(**search_kwargs) image_qs = Image.objects.filter(id=image_id) if not establishment_qs.exists(): diff --git a/apps/establishment/serializers/common.py b/apps/establishment/serializers/common.py index 7364d02c..e8a68cc0 100644 --- a/apps/establishment/serializers/common.py +++ b/apps/establishment/serializers/common.py @@ -486,7 +486,9 @@ class EstablishmentCarouselCreateSerializer(CarouselCreateSerializer): """Serializer to carousel object w/ model News.""" def validate(self, attrs): - establishment = models.Establishment.objects.filter(pk=self.pk).first() + search_kwargs = {'pk': self.pk} if self.pk else {'slug': self.slug} + + establishment = models.Establishment.objects.filter(**search_kwargs).first() if not establishment: raise serializers.ValidationError({'detail': _('Object not found.')}) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index bd96b052..6bc23ccc 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -104,18 +104,18 @@ class EstablishmentBTests(BaseTestCase): response = self.client.post('/api/back/establishments/', data=data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.get(f'/api/back/establishments/{self.establishment.id}/', format='json') + response = self.client.get(f'/api/back/establishments/slug/{self.establishment.slug}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) update_data = { 'name': 'Test new establishment' } - response = self.client.patch(f'/api/back/establishments/{self.establishment.id}/', + response = self.client.patch(f'/api/back/establishments/slug/{self.establishment.slug}/', data=update_data) self.assertEqual(response.status_code, status.HTTP_200_OK) - response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/', + response = self.client.delete(f'/api/back/establishments/slug/{self.establishment.slug}/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -372,22 +372,22 @@ class EstablishmentShedulerTests(ChildTestCase): 'weekday': 1 } - response = self.client.post(f'/api/back/establishments/{self.establishment.id}/schedule/', data=data) + response = self.client.post(f'/api/back/establishments/slug/{self.establishment.slug}/schedule/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) schedule = response.data - response = self.client.get(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/') + response = self.client.get(f'/api/back/establishments/slug/{self.establishment.slug}/schedule/{schedule["id"]}/') self.assertEqual(response.status_code, status.HTTP_200_OK) update_data = { 'weekday': 2 } - response = self.client.patch(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/', + response = self.client.patch(f'/api/back/establishments/slug/{self.establishment.slug}/schedule/{schedule["id"]}/', data=update_data) self.assertEqual(response.status_code, status.HTTP_200_OK) - response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/') + response = self.client.delete(f'/api/back/establishments/slug/{self.establishment.slug}/schedule/{schedule["id"]}/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -410,21 +410,21 @@ class EstablishmentWebTagTests(BaseTestCase): class EstablishmentWebSlugTests(ChildTestCase): def test_slug_Read(self): - response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/', format='json') + response = self.client.get(f'/api/web/establishments/{self.establishment.id}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) class EstablishmentWebSimilarTests(ChildTestCase): def test_similar_Read(self): - response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/similar/', format='json') + response = self.client.get(f'/api/web/establishments/{self.establishment.id}/similar/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) class EstablishmentWebCommentsTests(ChildTestCase): def test_comments_CRUD(self): - response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/comments/', format='json') + response = self.client.get(f'/api/web/establishments/{self.establishment.id}/comments/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) data = { @@ -433,13 +433,13 @@ class EstablishmentWebCommentsTests(ChildTestCase): 'mark': 4 } - response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/comments/create/', + response = self.client.post(f'/api/web/establishments/{self.establishment.id}/comments/create/', data=data) comment = response.json() self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', + response = self.client.get(f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -448,12 +448,12 @@ class EstablishmentWebCommentsTests(ChildTestCase): } response = self.client.patch( - f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', + f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', data=update_data) self.assertEqual(response.status_code, status.HTTP_200_OK) response = self.client.delete( - f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', + f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -466,13 +466,13 @@ class EstablishmentWebFavoriteTests(ChildTestCase): "object_id": self.establishment.id } - response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/favorites/', + response = self.client.post(f'/api/web/establishments/{self.establishment.id}/favorites/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.delete( - f'/api/web/establishments/slug/{self.establishment.slug}/favorites/', + f'/api/web/establishments/{self.establishment.id}/favorites/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -484,8 +484,8 @@ class EstablishmentCarouselTests(ChildTestCase): "object_id": self.establishment.id } - response = self.client.post(f'/api/back/establishments/{self.establishment.id}/carousels/', data=data) + response = self.client.post(f'/api/back/establishments/slug/{self.establishment.slug}/carousels/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/carousels/') + response = self.client.delete(f'/api/back/establishments/slug/{self.establishment.slug}/carousels/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index d9b2fbd7..ce1c7b27 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -8,25 +8,25 @@ app_name = 'establishment' urlpatterns = [ path('', views.EstablishmentListCreateView.as_view(), name='list'), - path('/', views.EstablishmentRUDView.as_view(), name='detail'), - path('/carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(), + path('slug//', views.EstablishmentRUDView.as_view(), name='detail'), + path('slug//carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(), name='create-destroy-carousels'), - path('/schedule//', views.EstablishmentScheduleRUDView.as_view(), + path('slug//schedule//', views.EstablishmentScheduleRUDView.as_view(), name='schedule-rud'), - path('/schedule/', views.EstablishmentScheduleCreateView.as_view(), + path('slug//schedule/', views.EstablishmentScheduleCreateView.as_view(), name='schedule-create'), - path('/gallery/', views.EstablishmentGalleryListView.as_view(), + path('slug//gallery/', views.EstablishmentGalleryListView.as_view(), name='gallery-list'), - path('/gallery//', + path('slug//gallery//', views.EstablishmentGalleryCreateDestroyView.as_view(), name='gallery-create-destroy'), - path('/companies/', views.EstablishmentCompanyListCreateView.as_view(), + path('slug//companies/', views.EstablishmentCompanyListCreateView.as_view(), name='company-list-create'), - path('/companies//', views.EstablishmentCompanyRUDView.as_view(), + path('slug//companies//', views.EstablishmentCompanyRUDView.as_view(), name='company-rud'), - path('/notes/', views.EstablishmentNoteListCreateView.as_view(), + path('slug//notes/', views.EstablishmentNoteListCreateView.as_view(), name='note-list-create'), - path('/notes//', views.EstablishmentNoteRUDView.as_view(), + path('slug//notes//', views.EstablishmentNoteRUDView.as_view(), name='note-rud'), path('menus/', views.MenuListCreateView.as_view(), name='menu-list'), path('menus//', views.MenuRUDView.as_view(), name='menu-rud'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index d3afbf2e..b92929c1 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -31,6 +31,7 @@ class EstablishmentListCreateView(EstablishmentMixinViews, generics.ListCreateAP class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView): + lookup_field = 'slug' queryset = models.Establishment.objects.all() serializer_class = serializers.EstablishmentRUDSerializer permission_classes = [IsCountryAdmin | IsEstablishmentManager] @@ -38,6 +39,7 @@ class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView): class EstablishmentScheduleRUDView(generics.RetrieveUpdateDestroyAPIView): """Establishment schedule RUD view""" + lookup_field = 'slug' serializer_class = ScheduleRUDSerializer permission_classes = [IsEstablishmentManager] @@ -45,11 +47,11 @@ class EstablishmentScheduleRUDView(generics.RetrieveUpdateDestroyAPIView): """ Returns the object the view is displaying. """ - establishment_pk = self.kwargs['pk'] + establishment_slug = self.kwargs['slug'] schedule_id = self.kwargs['schedule_id'] establishment = get_object_or_404(klass=models.Establishment.objects.all(), - pk=establishment_pk) + slug=establishment_slug) schedule = get_object_or_404(klass=establishment.schedule, id=schedule_id) @@ -62,6 +64,7 @@ class EstablishmentScheduleRUDView(generics.RetrieveUpdateDestroyAPIView): class EstablishmentScheduleCreateView(generics.CreateAPIView): """Establishment schedule Create view""" + lookup_field = 'slug' serializer_class = ScheduleCreateSerializer queryset = Timetable.objects.all() permission_classes = [IsEstablishmentManager] @@ -210,6 +213,7 @@ class EstablishmentSubtypeRUDView(generics.RetrieveUpdateDestroyAPIView): class EstablishmentGalleryCreateDestroyView(EstablishmentMixinViews, CreateDestroyGalleryViewMixin): """Resource for a create|destroy gallery for establishment for back-office users.""" + lookup_field = 'slug' serializer_class = serializers.EstablishmentBackOfficeGallerySerializer def get_object(self): @@ -218,7 +222,7 @@ class EstablishmentGalleryCreateDestroyView(EstablishmentMixinViews, """ establishment_qs = self.filter_queryset(self.get_queryset()) - establishment = get_object_or_404(establishment_qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(establishment_qs, slug=self.kwargs.get('slug')) gallery = get_object_or_404(establishment.establishment_gallery, image_id=self.kwargs.get('image_id')) @@ -231,12 +235,13 @@ class EstablishmentGalleryCreateDestroyView(EstablishmentMixinViews, class EstablishmentGalleryListView(EstablishmentMixinViews, generics.ListAPIView): """Resource for returning gallery for establishment for back-office users.""" + lookup_field = 'slug' serializer_class = serializers.ImageBaseSerializer def get_object(self): """Override get_object method.""" qs = super(EstablishmentGalleryListView, self).get_queryset() - establishment = get_object_or_404(qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(qs, slug=self.kwargs.get('slug')) # May raise a permission denied self.check_object_permissions(self.request, establishment) @@ -252,6 +257,7 @@ class EstablishmentCompanyListCreateView(EstablishmentMixinViews, generics.ListCreateAPIView): """List|Create establishment company view.""" + lookup_field = 'slug' serializer_class = serializers.EstablishmentCompanyListCreateSerializer def get_object(self): @@ -259,7 +265,7 @@ class EstablishmentCompanyListCreateView(EstablishmentMixinViews, establishment_qs = models.Establishment.objects.all() filtered_ad_qs = self.filter_queryset(establishment_qs) - establishment = get_object_or_404(filtered_ad_qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(filtered_ad_qs, slug=self.kwargs.get('slug')) # May raise a permission denied self.check_object_permissions(self.request, establishment) @@ -275,6 +281,7 @@ class EstablishmentCompanyRUDView(EstablishmentMixinViews, generics.RetrieveUpdateDestroyAPIView): """Create|Retrieve|Update|Destroy establishment company view.""" + lookup_field = 'slug' serializer_class = serializers.CompanyBaseSerializer def get_object(self): @@ -282,7 +289,7 @@ class EstablishmentCompanyRUDView(EstablishmentMixinViews, establishment_qs = models.Establishment.objects.all() filtered_ad_qs = self.filter_queryset(establishment_qs) - establishment = get_object_or_404(filtered_ad_qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(filtered_ad_qs, slug=self.kwargs.get('slug')) company = get_object_or_404(establishment.companies.all(), pk=self.kwargs.get('company_pk')) # May raise a permission denied @@ -295,6 +302,7 @@ class EstablishmentNoteListCreateView(EstablishmentMixinViews, generics.ListCreateAPIView): """Retrieve|Update|Destroy establishment note view.""" + lookup_field = 'slug' serializer_class = serializers.EstablishmentNoteListCreateSerializer def get_object(self): @@ -302,7 +310,7 @@ class EstablishmentNoteListCreateView(EstablishmentMixinViews, establishment_qs = models.Establishment.objects.all() filtered_establishment_qs = self.filter_queryset(establishment_qs) - establishment = get_object_or_404(filtered_establishment_qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(filtered_establishment_qs, slug=self.kwargs.get('slug')) # May raise a permission denied self.check_object_permissions(self.request, establishment) @@ -318,6 +326,7 @@ class EstablishmentNoteRUDView(EstablishmentMixinViews, generics.RetrieveUpdateDestroyAPIView): """Create|Retrieve|Update|Destroy establishment note view.""" + lookup_field = 'slug' serializer_class = serializers.EstablishmentNoteBaseSerializer def get_object(self): @@ -325,7 +334,7 @@ class EstablishmentNoteRUDView(EstablishmentMixinViews, establishment_qs = models.Establishment.objects.all() filtered_establishment_qs = self.filter_queryset(establishment_qs) - establishment = get_object_or_404(filtered_establishment_qs, pk=self.kwargs.get('pk')) + establishment = get_object_or_404(filtered_establishment_qs, slug=self.kwargs.get('slug')) note = get_object_or_404(establishment.notes.all(), pk=self.kwargs['note_pk']) # May raise a permission denied diff --git a/apps/timetable/serialziers.py b/apps/timetable/serialziers.py index 48c8374d..305be0ec 100644 --- a/apps/timetable/serialziers.py +++ b/apps/timetable/serialziers.py @@ -45,8 +45,14 @@ class ScheduleRUDSerializer(serializers.ModelSerializer): .parser_context.get('view')\ .kwargs.get('pk') + establishment_slug = self.context.get('request')\ + .parser_context.get('view')\ + .kwargs.get('slug') + + search_kwargs = {'pk': establishment_pk} if establishment_pk else {'slug': establishment_slug} + # Check if establishment exists. - establishment_qs = Establishment.objects.filter(pk=establishment_pk) + establishment_qs = Establishment.objects.filter(**search_kwargs) if not establishment_qs.exists(): raise serializers.ValidationError({'detail': _('Establishment not found.')}) attrs['establishment'] = establishment_qs.first() diff --git a/apps/utils/serializers.py b/apps/utils/serializers.py index f55b69bc..15a58f7b 100644 --- a/apps/utils/serializers.py +++ b/apps/utils/serializers.py @@ -118,6 +118,10 @@ class CarouselCreateSerializer(serializers.ModelSerializer): def pk(self): return self.request.parser_context.get('kwargs').get('pk') + @property + def slug(self): + return self.request.parser_context.get('kwargs').get('slug') + class RecursiveFieldSerializer(serializers.Serializer): def to_representation(self, value): diff --git a/apps/utils/views.py b/apps/utils/views.py index 478a3cb2..db10dbfd 100644 --- a/apps/utils/views.py +++ b/apps/utils/views.py @@ -158,7 +158,11 @@ class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView): lookup_field = 'id' def get_base_object(self): - return get_object_or_404(self._model, id=self.kwargs['pk']) + search_kwargs = { + 'id': self.kwargs.get('pk'), + 'slug': self.kwargs.get('slug'), + } + return get_object_or_404(self._model, **search_kwargs) def get_object(self): """ From 4202eb679b5a938d0a454cfcffa11b429cd05578 Mon Sep 17 00:00:00 2001 From: dormantman Date: Wed, 4 Dec 2019 15:48:54 +0300 Subject: [PATCH 2/3] Corrections for tests --- apps/establishment/tests.py | 18 +++++++++--------- apps/establishment/views/web.py | 1 + apps/tag/serializers.py | 1 + apps/utils/views.py | 11 +++++++---- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 6bc23ccc..f46cccc3 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -410,21 +410,21 @@ class EstablishmentWebTagTests(BaseTestCase): class EstablishmentWebSlugTests(ChildTestCase): def test_slug_Read(self): - response = self.client.get(f'/api/web/establishments/{self.establishment.id}/', format='json') + response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) class EstablishmentWebSimilarTests(ChildTestCase): def test_similar_Read(self): - response = self.client.get(f'/api/web/establishments/{self.establishment.id}/similar/', format='json') + response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/similar/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) class EstablishmentWebCommentsTests(ChildTestCase): def test_comments_CRUD(self): - response = self.client.get(f'/api/web/establishments/{self.establishment.id}/comments/', format='json') + response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/comments/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) data = { @@ -433,13 +433,13 @@ class EstablishmentWebCommentsTests(ChildTestCase): 'mark': 4 } - response = self.client.post(f'/api/web/establishments/{self.establishment.id}/comments/create/', + response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/comments/create/', data=data) comment = response.json() self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.get(f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', + response = self.client.get(f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -448,12 +448,12 @@ class EstablishmentWebCommentsTests(ChildTestCase): } response = self.client.patch( - f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', + f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', data=update_data) self.assertEqual(response.status_code, status.HTTP_200_OK) response = self.client.delete( - f'/api/web/establishments/{self.establishment.id}/comments/{comment["id"]}/', + f'/api/web/establishments/slug/{self.establishment.slug}/comments/{comment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -466,13 +466,13 @@ class EstablishmentWebFavoriteTests(ChildTestCase): "object_id": self.establishment.id } - response = self.client.post(f'/api/web/establishments/{self.establishment.id}/favorites/', + response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/favorites/', data=data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.delete( - f'/api/web/establishments/{self.establishment.id}/favorites/', + f'/api/web/establishments/slug/{self.establishment.slug}/favorites/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) diff --git a/apps/establishment/views/web.py b/apps/establishment/views/web.py index bd826e4e..65a56a5b 100644 --- a/apps/establishment/views/web.py +++ b/apps/establishment/views/web.py @@ -142,6 +142,7 @@ class EstablishmentFavoritesCreateDestroyView(FavoritesCreateDestroyMixinView): class EstablishmentCarouselCreateDestroyView(CarouselCreateDestroyMixinView): """View for create/destroy establishment from carousel.""" + lookup_field = 'slug' _model = models.Establishment serializer_class = serializers.EstablishmentCarouselCreateSerializer diff --git a/apps/tag/serializers.py b/apps/tag/serializers.py index 2cc818a9..27590b18 100644 --- a/apps/tag/serializers.py +++ b/apps/tag/serializers.py @@ -37,6 +37,7 @@ class TagBackOfficeSerializer(TagBaseSerializer): 'category' ) + class TagCategoryProductSerializer(serializers.ModelSerializer): """SHORT Serializer for TagCategory""" diff --git a/apps/utils/views.py b/apps/utils/views.py index db10dbfd..e158357e 100644 --- a/apps/utils/views.py +++ b/apps/utils/views.py @@ -158,10 +158,10 @@ class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView): lookup_field = 'id' def get_base_object(self): - search_kwargs = { - 'id': self.kwargs.get('pk'), - 'slug': self.kwargs.get('slug'), - } + establishment_pk = self.kwargs.get('pk') + establishment_slug = self.kwargs.get('slug') + + search_kwargs = {'id': establishment_pk} if establishment_pk else {'slug': establishment_slug} return get_object_or_404(self._model, **search_kwargs) def get_object(self): @@ -175,6 +175,9 @@ class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView): # self.check_object_permissions(self.request, carousels) return carousels + def perform_destroy(self, instance): + instance.delete() + self.es_update_base_object() # BackOffice user`s views & viewsets class BindObjectMixin: From 72d52e5c19747094183e4c115e3f34d40c967dc9 Mon Sep 17 00:00:00 2001 From: dormantman Date: Wed, 4 Dec 2019 15:51:03 +0300 Subject: [PATCH 3/3] Removed unusable destroy function --- apps/utils/views.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/utils/views.py b/apps/utils/views.py index e158357e..9ac8ca60 100644 --- a/apps/utils/views.py +++ b/apps/utils/views.py @@ -175,9 +175,6 @@ class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView): # self.check_object_permissions(self.request, carousels) return carousels - def perform_destroy(self, instance): - instance.delete() - self.es_update_base_object() # BackOffice user`s views & viewsets class BindObjectMixin: