Aadil Shaikh
Aadil Shaikh

Reputation: 419

Django Rest Framework - ListCreateAPIView Prints Nothing

I have create a API for list and create using django rest framework. But it is not printing anything in Web browsable api. I don't what is the problem. When i am printing queryset and serializer variable it is giving proper output as QuerySet. Why this is happening?

Views.py

from rest_framework.response import Response
from rest_framework import generics
from .serializers import MovieSerializer
from movie.models import Movie
from rest_framework.permissions import IsAuthenticated

   class MovieList(generics.ListCreateAPIView):
       queryset = Movie.objects.all()[:10]
       serializer_class = MovieSerializer
       permission_classes = (IsAuthenticated,)

       def list(self, request):
           # Note the use of `get_queryset()` instead of `self.queryset`
           queryset = self.get_queryset()
           # print(queryset)
           serializer = MovieSerializer(queryset, many=True)
           # print(serializer.data)
           return Response(serializer.data)

Serializers.py

from rest_framework import serializers
from movie.models import Movie

   class MovieSerializer(serializers.Serializer):
       class Meta:
           model = Movie
           fields = [
               'popularity',
               'director',
               'genre',
               'imdb_score',
               'name',
           ]

See the image for reference. enter image description here

Upvotes: 0

Views: 469

Answers (1)

Cipher
Cipher

Reputation: 2122

The problem is in your serializers.py. You have to use ModelSerializer instead Serializer.

from rest_framework import serializers
from movie.models import Movie

   class MovieSerializer(serializers.ModelSerializer):  # <- 
       class Meta:
           model = Movie
           fields = [
               'popularity',
               'director',
               'genre',
               'imdb_score',
               'name',
           ]

Upvotes: 0

Related Questions