Djangorestframework возвращает: TypeError: get_extra_actions() missing 1 required positional argument: 'self' when declaring get()

Я немного запутался в своем коде, у меня есть:

from django.db.models import query
from django.shortcuts import render
from rest_framework.views import APIView
from .models import Publication
from rest_framework.response import Response
from .serializer import PublicationSerializer

# Create your views here.

class PublicationView(APIView):
    
    serial_class = PublicationSerializer()

    def get_extra_actions(self):
        return [ self.get() ]

    def get(self, request):
        detail = [ {'pub_id': i.pub_id, 'pub_date': i.pub_date, 'title': i.title, 'description': i.description, 'link': i.link} for i in Publication.objects.all() ]
        return Response(detail)

но я по-прежнему получаю вышеуказанную ошибку. Есть какие-нибудь мысли или помощь? Дайте мне знать!

После небольшого исследования я обнаружил, что использование APIview - это не совсем то, что мне нужно. Использование viewsets.ModelViewSet было намного проще и привело всего к двум строкам кода.

class PublicationView(viewsets.ModelViewSet):
   serializer_class = PublicationSerializer
   queryset = Publication.objects.all()

После маршрутизации api обратно в urls.py все работает отлично!

Вернуться на верх