我正在使用Django Rest Framework,我尝试使用doc example从API视图转换为TemplateHTMLResponse。我能够完成大部分内容并加载模板并传递所有数据,但是该过程的HTML方面的文档很少。
我遇到的问题是结果没有被分页。我能够访问和迭代所有数据,但我需要组织的分页。
views.py。
<form action="/'+allQuotes[x]._id+'/destroy" class="destroy" method="GET" mongoID="'+allQuotes[x]._id+'">
<input type="submit" value="Delete">
</form>
objectlist.html
class BoxViewSet(viewsets.ModelViewSet):
queryset = Uploadobject.objects.all().exclude(verified=False)
serializer_class = BoxSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,
IsBox)
#renderer_classes = (renderers.TemplateHTMLRenderer)
def list(self, request):
queryset = Uploadobject.objects.all().exclude(verified=False)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, data=request.data)
if serializer.is_valid():
serdata = self.get_paginated_response(serializer.data)
data= {'objects': queryset,
'serializers': serializer}
return Response(data, template_name='restframework/objectlist.html')
我尝试过很多东西,包括ListModelMixin,并按照pagination docs的建议创建自定义分页脚本,但似乎没有任何内容可以通过。我读到有从Django分页的方法,但我认为保持Django Rest Framework中的所有分页将更简单。据我所知,我有正确的后端数据,只需要纠正HTML。总结一下,在模板页面的分页设置中显示所有模型数据的最简单方法是什么?
答案 0 :(得分:0)
这种情况正在发生,因为即使您使用DRF方法对查询集进行了分页,您仍然会使用原始查询集发送响应。
这样的事情应该有效:
renderer_classes = (renderers.TemplateHTMLRenderer, )
def list(self, request):
queryset = Uploadobject.objects.all().exclude(verified=False)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, data=request.data)
return self.get_paginated_response(serializer.data)
data= {'objects': queryset, 'serializers': serializer}
return Response(data, template_name='restframework/objectlist.html')