#django #django-rest-framework
#django #django-rest-framework
Вопрос:
Я создал API для list и создаю с помощью django rest framework. Но он ничего не печатает в API, доступном для просмотра в Интернете. Я не знаю, в чем проблема. Когда я печатаю переменную queryset
и serializer
, она выдает правильный вывод как QuerySet
. Почему это происходит?
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',
]
Комментарии:
1. заполнены ли ваши данные?
2. да, он заполнен
3. Вы используете не
ModelSerializer
, а простоSerializer
. Кроме того, позаботьтесь о разделении набора запросов таким образом.
Ответ №1:
Проблема в вашем serializers.py
. Вы должны использовать ModelSerializer
вместо 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',
]