Django rest framework Преобразование представления в api

Я новичок в drf и мне нужно создать это представление в drf, но я не знаю, какой метод я должен использовать.

‍‍‍‍‍‍class CategoryList(ListView):
    template_name = "blog/categorylist.html"
    paginate_by = 10
    def get_queryset(self):
        global my_category
        slug = self.kwargs.get('slug')
        my_category = get_object_or_404(Category, slug=slug)
        return my_category.articles.published()

    def get_conte‍‍‍‍xt_data(self, **kwargs):
        context = super(CategoryList, self).get_context_data(**kwargs)
        context['category'] = my_category
        return context
‍

Использование класса APIView практически не отличается от использования обычного класса View, как обычно, входящий запрос отправляется в соответствующий метод-обработчик, такой как .get() или .post() Docs

Переопределив метод get, вы можете получить slug из URL и использовать его для получения объекта категории.

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
# Your other imports

class CategoryListAPIView(APIView):
    def get(self, request, slug):
        category = get_object_or_404(Category, slug=slug)
        articles = category.articles.published()
        return Response(articles, status=status.HTTP_200_OK)

И URL будет выглядеть примерно так

path('category/<slug:slug>/', CategoryListAPIView.as_view()),
Вернуться на верх