计算来自ListView的帖子数

时间:2019-02-23 16:10:12

标签: python django django-views

我想在我的 ListView

中计算“待办事项”的数量

views.py

class DashboardListView(LoginRequiredMixin,ListView):
    model = Links
    template_name = 'dashboard/home.html'
    context_object_name ='links_list'
    paginate_by = 15

    def get_queryset(self):
        return self.model.objects.filter(author=self.request.user)

    def get_context_data(self, **kwargs):

        context = super().get_context_data(**kwargs)

        context['dashboard_list']= Dashboard.objects.filter(author=self.request.user)[:15]
        context['todo_list']= Todo.objects.filter(author=self.request.user).order_by('-pk')[:15]
        context['PasswordUsername_list']= PasswordUsername.objects.filter(author=self.request.user)
        return context

并在模板中使用{{c_count}}进行渲染,但无法这样做。

谢谢

1 个答案:

答案 0 :(得分:2)

由于您也可能会渲染列表,因此使用length template filter [Django-doc]可能是最快的方法,因为它将获取对象并计算长度,因此我们可以这样渲染:

{{ todo_list|length }}

如果您只对长度本身感兴趣,而不对todo_list的对象感兴趣,我们可以在.count()上调用QuerySet,但这还有一个额外的缺点是它仅适用于QuerySet(或具有.count()方法的类):

<!-- only interested in the count, not in the objects -->
{{ todo_list.count }}