Changed to text/html response

This commit is contained in:
dormantman 2020-01-23 17:38:55 +03:00
parent 18978355bc
commit 0c40ed06e1

View File

@ -1,11 +1,13 @@
"""Main app views.""" """Main app views."""
from django.http import Http404 from django.http import Http404
from rest_framework import generics, permissions from rest_framework import generics, permissions
from rest_framework.renderers import StaticHTMLRenderer
from rest_framework.response import Response from rest_framework.response import Response
from main import methods, models, serializers from main import methods, models, serializers
from news.models import News, NewsType from news.models import News, NewsType
from news.serializers import NewsDetailSerializer, NewsListSerializer from news.serializers import NewsDetailSerializer, NewsListSerializer
from news.views import NewsMixinView
from utils.serializers import EmptySerializer from utils.serializers import EmptySerializer
@ -107,7 +109,7 @@ class ContentPageView(generics.ListAPIView):
queryset = News.objects.all() queryset = News.objects.all()
def get_queryset(self): 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) return super().get_queryset().filter(news_type=static_page_category)
@ -119,21 +121,26 @@ class ContentPageAdminView(generics.ListCreateAPIView):
queryset = News.objects.all() queryset = News.objects.all()
def get_queryset(self): 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) 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""" """Retrieve method to get content pages"""
lookup_field = 'slug' lookup_field = None
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get_queryset(self): 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) 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): class ContentPageIdRetrieveView(generics.RetrieveAPIView):
@ -142,20 +149,25 @@ class ContentPageIdRetrieveView(generics.RetrieveAPIView):
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()
renderer_classes = [StaticHTMLRenderer]
def get_queryset(self): 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) 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""" """Retrieve method to get content pages"""
lookup_field = 'slug' lookup_field = None
permission_classes = (permissions.IsAdminUser,) permission_classes = (permissions.IsAdminUser,)
serializer_class = NewsDetailSerializer serializer_class = NewsDetailSerializer
queryset = News.objects.all() queryset = News.objects.all()
def get_queryset(self): 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) return super().get_queryset().filter(news_type=static_page_category)