“MovieViewSet”应包含“serializer\u class”属性,或重写“get\u serializer\u class()”方法

2024-04-19 05:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从Youtube教程构建一个项目,但我一直遇到以下错误:AssertionError: 'MovieViewSet' should either include a `serializer_class` attribute, or override the `get_serializer_class()` method.

这是views.py文件

class MovieViewSet(viewsets.ModelViewSet):
    queryset = Movie.objects.all()
    serializer_class = MovieSerializer

    def list(self, request, *args, **kwargs):
        movies = Movie.objects.all()
        serializer = MovieSerializer(movies, many=True)
        return Response(serializer.data)

这也是serializer.py文件:

class MovieSerializer(serializers.ModelSerializer):
    class Meta:
        model = Movie
        fields = ('id', 'title', 'desc', 'year')

我做错了什么?因为在我看来,我好像在用serializers_class

提前谢谢你


Tags: 文件项目pyobjectsyoutube教程allmovies
1条回答
网友
1楼 · 发布于 2024-04-19 05:26:29

试试这个

class MovieViewSet(viewsets.ModelViewSet):
    queryset = Movie.objects.all()

    def get_serializer_class(self):
        return MovieSerializer

    def list(self, request, *args, **kwargs):
        movies = Movie.objects.all()
        serializer = MovieSerializer(movies, many=True)
        return Response(serializer.data)

我认为这是一个缓存问题,让我们看看这是否有效

相关问题 更多 >