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

问题描述 投票:0回答:2

我试图说服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'

假设qazxsw poi是内置的Django用户模型,qazxsw poi是UserUserListSerializer,模板只包含ModelSerializer的for循环显示所有用户。

当我尝试它时,我收到以下错误:

fields = "__all__"

我必须做一些非常错误的事情,我相信必须有一种方法可以利用通用性,我只是不知道如何。

django django-rest-framework renderer
2个回答
0
投票

序列化程序需要object_list格式的上下文,但您提供的是由renderer_classes生成的TypeError: context must be a dict rather than ReturnList.

如果你需要dict,我没有得到你为什么使用ReturnList?你显然正在渲染一个模板而不是JSON。因此,请提及您需要这样做的具体原因,以便任何人都能理解您要实现的目标。


0
投票

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

ListView

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.