【发布时间】:2018-08-08 03:28:10
【问题描述】:
[已解决]
class articleViewSet(viewsets.ModelViewSet):
queryset = article.objects.all()
serializer_class = articleSerializer
def list(self, request):
queryset = self.get_queryset()
serializer = articleSerializer(queryset, many=True)
return Response(serializer.data)
我使用 DRF 制作了 API 服务器。
为了自定义列表请求,我这样写了views.py。
[views.py]
class articleViewSet(viewsets.ModelViewSet):
def list(self, request):
queryset = article.objects.all()
serializer = articleSerializer(queryset, many=True)
return Response(serializer.data)
但是,当我执行 runserver 时,它会抛出错误。
AssertionError: base_name 参数未指定,并且无法从视图集中自动确定名称,因为它没有 .queryset 属性。
哪里出错了?
【问题讨论】:
-
在班级级别定义
queryset = article.objects.all() -
为此显示您的 urls.py 行
-
你为什么要在这里定义
list?您的版本没有做任何特别的事情,使用通用视图或视图集的全部意义在于它为您完成了所有这些。 -
@AvinashRaj 谢谢。切换到班级级别,错误被隐藏。但是当我访问 /article/ 时,它会出现“serializer = articleSerializer(queryset, many=True) NameError: name 'queryset' is not defined”
-
正如丹尼尔所说,定义 serializer_class ,类级别的查询集就足够了
标签: django django-rest-framework django-views