**
Django ListView视图类中如何设置分页合计项
Django listview视图类非常好用,只需一些简单的设置,就可以将数据集显示到前端页面了,为程序员节省大量劳动力。
最近个人的一个项目某页面用了listview,并且分页显示了,需要在每一页下显示表列对应数据统计值。网上查来查去没看到有人介绍这方面知识,自己慢慢摸索和反复实验,总算是找到了方法,现简要记录和分享于此。
事实上,目标的实现方法很简单,就是用到listview下的 paginate_queryset 方法。具体示例如下:
class AAAListView(ListView):
def get_context_data(self, *, object_list=None, **kwargs):
context = super(AAAListView,self).get_context_data(**kwargs)
current_page = self.paginate_queryset(self.object_list,self.paginate_by)
page_data_list = current_page[2]
money_total = 0
for obj in page_data_list:
money_total = money_total + obj.money
注意:大体思路就是先取出当前页的queryset,self.paginate_queryset()取出的是页面元组对象,其中包含了数据queryset,为第3个成员,所以要用current_page[2]这样的脚标方式取出来才能供遍历时使用。然后for循环遍历算出特定列的合计值。再将合计值变量加入context返回前端,就可以在前端进行调用了。
以上目标的实现或许还有更好的方法,欢迎大家评论时分享更好的方法。