python - 'MovieViewSet' 应该包含一个 `serializer_class` 属性,或者覆盖 `get_serializer_class()` 方法
问题描述
我正在尝试从 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
...
先感谢您!
解决方案
试试这个
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)
我相信这是一个缓存问题,让我们看看这是否有效。
推荐阅读
- php - how to use php tidy in laravel?
- java - java11 允许在一行中编译和执行
- awk - 如何使用awk脚本生成文件
- pandas - 为基于列的计算排除 Pandas 中的特定列
- excel - 如何编码“检查名称”以检查“发件人”字段?
- python - 打印多行字符串时添加缩进
- android-canvas - 带有 TextView 和背景颜色的三角形
- c# - 使用 OpenAndActivateDocument 时出现 CentralFileCommunicationException
- java - Spring Cloud Dataflow 设置系统属性
- laravel - 目标类 [App\Http\Controllers\LoginController] 不存在