/
SlavaZ
/
empcenter
Обзор
Документация
Войти
/
SlavaZ
/
empcenter
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
api/views.py
37 строк
2 KB
vyacheslav zamaraev
28-10-2023 check project fix
28 окт 2023, 11:36
28 окт 2023, 11:36
858cfa7
Код
Авторство
О чём код?
from rest_framework.response import Response from rest_framework.decorators import api_view, permission_classes from rest_framework.generics import RetrieveAPIView from rest_framework.status import HTTP_201_CREATED, HTTP_400_BAD_REQUEST from rest_framework.permissions import IsAuthenticatedOrReadOnly from main.models import Bb, Comment from .serializers import BbSerializer, BbDetailSerializer, CommentSerializer @api_view(['GET']) # Контроллер выводящий список публикаций def bbs(request): if request.method == 'GET': bbs = Bb.objects.filter(is_active=True)[:10] serializer = BbSerializer(bbs, many=True) return Response(serializer.data) # Контроллер выводящий сведения о выбранной публикации class BbDetailView(RetrieveAPIView): queryset = Bb.objects.filter(is_active=True) serializer_class = BbDetailSerializer # Контроллер выводящий список комментариев @api_view(['GET', 'POST']) # Позволяем всем просматривать комментарии (даже если пользователь незарегистрирован) @permission_classes((IsAuthenticatedOrReadOnly,)) def comments(request, pk): if request.method == 'POST': serializer = CommentSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=HTTP_201_CREATED) else: return Response(serializer.errors, status=HTTP_400_BAD_REQUEST) else: comments = Comment.objects.filter(is_active=True, bb=pk) serializer = CommentSerializer(comments, many=True) return Response(serializer.data)