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
все работает отлично!