Django REST Framework - 让 ListAPIView 的行为类似于纯 ListView

Django REST Framework - let ListAPIView behave similar to pure ListView

我试图说服 ListAPIView 以纯 Django 中的 ListView 的方式行事(这意味着,呈现带有 object_list 变量的模板,可能是一些分页的东西,等等)。这是我试过的:

class UserListView(ListAPIView):
    permission_classes = (AllowAny, )
    queryset = User.objects.all()
    serializer_class = UserListSerializer
    renderer_classes = (TemplateHTMLRenderer, )
    template_name = 'user/list.html'

假设 User 是内置的 Django 用户模型,UserListSerializerModelSerializerfields = "__all__" 并且模板只包含一个 for 循环 object_list 显示所有用户。

当我尝试时,出现以下错误:

TypeError: context must be a dict rather than ReturnList.

我一定是做错了什么,我相信我一定有办法利用通用性,但我不知道怎么做。

序列化程序需要 dict 格式的上下文,但您提供的 ReturnList 是由 renderer_classes 生成的。

如果你需要 ListView 我没听懂,那你为什么要使用 ListAPIView?您显然正在渲染模板 JSON。因此,请说明您需要这样做的具体原因,以便任何人都能理解您想要实现的目标。

好吧,我刚刚踏入陷阱。如果我启用分页,一切都会按预期工作,e。 G。将其添加到我的设置中:

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 100
}

我永远猜不到这会是问题所在。