From 0c40ed06e1fc1e8c61fd5ed5b37e12fbd325ec92 Mon Sep 17 00:00:00 2001 From: dormantman Date: Thu, 23 Jan 2020 17:38:55 +0300 Subject: [PATCH] Changed to text/html response --- apps/main/views/common.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/apps/main/views/common.py b/apps/main/views/common.py index c6b77821..c82af99e 100644 --- a/apps/main/views/common.py +++ b/apps/main/views/common.py @@ -1,11 +1,13 @@ """Main app views.""" from django.http import Http404 from rest_framework import generics, permissions +from rest_framework.renderers import StaticHTMLRenderer from rest_framework.response import Response from main import methods, models, serializers from news.models import News, NewsType from news.serializers import NewsDetailSerializer, NewsListSerializer +from news.views import NewsMixinView from utils.serializers import EmptySerializer @@ -107,7 +109,7 @@ class ContentPageView(generics.ListAPIView): queryset = News.objects.all() def get_queryset(self): - static_page_category = NewsType.objects.get(name='static-page') + static_page_category = NewsType.objects.get(name='static') return super().get_queryset().filter(news_type=static_page_category) @@ -119,21 +121,26 @@ class ContentPageAdminView(generics.ListCreateAPIView): queryset = News.objects.all() def get_queryset(self): - static_page_category = NewsType.objects.get(name='static-page') + static_page_category = NewsType.objects.get(name='static') return super().get_queryset().filter(news_type=static_page_category) -class ContentPageRetrieveView(generics.RetrieveAPIView): +class ContentPageRetrieveView(NewsMixinView, generics.RetrieveAPIView): """Retrieve method to get content pages""" - lookup_field = 'slug' + lookup_field = None permission_classes = (permissions.AllowAny,) serializer_class = NewsDetailSerializer queryset = News.objects.all() + renderer_classes = [StaticHTMLRenderer] def get_queryset(self): - static_page_category = NewsType.objects.get(name='static-page') - return super().get_queryset().filter(news_type=static_page_category) + static_page_category = NewsType.objects.get(name='static') + return self.queryset.filter(news_type__id=static_page_category.id) + + def get(self, request, *args, **kwargs): + instance = self.get_object() + return Response(instance.description.get(request.locale)) class ContentPageIdRetrieveView(generics.RetrieveAPIView): @@ -142,20 +149,25 @@ class ContentPageIdRetrieveView(generics.RetrieveAPIView): permission_classes = (permissions.AllowAny,) serializer_class = NewsDetailSerializer queryset = News.objects.all() + renderer_classes = [StaticHTMLRenderer] def get_queryset(self): - static_page_category = NewsType.objects.get(name='static-page') - return super().get_queryset().filter(news_type=static_page_category) + static_page_category = NewsType.objects.get(name='static') + return self.queryset.filter(news_type__id=static_page_category.id) + + def get(self, request, *args, **kwargs): + instance = self.get_object() + return Response(instance.description.get(request.locale)) -class ContentPageRetrieveAdminView(generics.RetrieveUpdateDestroyAPIView): +class ContentPageRetrieveAdminView(NewsMixinView, generics.RetrieveUpdateDestroyAPIView): """Retrieve method to get content pages""" - lookup_field = 'slug' + lookup_field = None permission_classes = (permissions.IsAdminUser,) serializer_class = NewsDetailSerializer queryset = News.objects.all() def get_queryset(self): - static_page_category = NewsType.objects.get(name='static-page') + static_page_category = NewsType.objects.get(name='static') return super().get_queryset().filter(news_type=static_page_category)