From 79001be037defa3954d73044fdbeb0c8a39a2143 Mon Sep 17 00:00:00 2001 From: dormantman Date: Thu, 23 Jan 2020 17:53:13 +0300 Subject: [PATCH 1/2] Added 404 pages --- apps/main/views/common.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/main/views/common.py b/apps/main/views/common.py index b93096b4..aa4c2db0 100644 --- a/apps/main/views/common.py +++ b/apps/main/views/common.py @@ -145,6 +145,10 @@ class ContentPageRetrieveView(NewsMixinView, generics.RetrieveAPIView): def get(self, request, *args, **kwargs): instance = self.get_object() + + if instance is None: + raise Http404 + return Response(instance.description.get(request.locale)) @@ -158,6 +162,10 @@ class ContentPageIdRetrieveView(generics.RetrieveAPIView): def get(self, request, *args, **kwargs): instance = self.get_object() + + if instance is None: + raise Http404 + return Response(instance.description.get(request.locale)) From f899de0369ec1de68b21dec5f53bec777a6a1068 Mon Sep 17 00:00:00 2001 From: dormantman Date: Thu, 23 Jan 2020 17:59:18 +0300 Subject: [PATCH 2/2] Added check to news mixin --- apps/main/views/common.py | 8 -------- apps/news/views.py | 11 +++++++++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/apps/main/views/common.py b/apps/main/views/common.py index aa4c2db0..b93096b4 100644 --- a/apps/main/views/common.py +++ b/apps/main/views/common.py @@ -145,10 +145,6 @@ class ContentPageRetrieveView(NewsMixinView, generics.RetrieveAPIView): def get(self, request, *args, **kwargs): instance = self.get_object() - - if instance is None: - raise Http404 - return Response(instance.description.get(request.locale)) @@ -162,10 +158,6 @@ class ContentPageIdRetrieveView(generics.RetrieveAPIView): def get(self, request, *args, **kwargs): instance = self.get_object() - - if instance is None: - raise Http404 - return Response(instance.description.get(request.locale)) diff --git a/apps/news/views.py b/apps/news/views.py index 5429b4a7..4f0adc1e 100644 --- a/apps/news/views.py +++ b/apps/news/views.py @@ -1,5 +1,6 @@ """News app views.""" from django.conf import settings +from django.http import Http404 from django.shortcuts import get_object_or_404 from django.utils import translation from rest_framework import generics, permissions, response @@ -40,8 +41,14 @@ class NewsMixinView: return qs def get_object(self): - return self.get_queryset() \ - .filter(slugs__values__contains=[self.kwargs['slug']]).first() + instance = self.get_queryset().filter( + slugs__values__contains=[self.kwargs['slug']] + ).first() + + if instance is None: + raise Http404 + + return instance class NewsListView(NewsMixinView, generics.ListAPIView):