Django get_queryset返回自定义变量

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

以用户为例,我试图显示有多少用户。 get_context_data可以正常工作,但get_queryset不能。我知道它的设置不正确,但是我已经玩了好几天了,只是没有点击。.

主要目标是使用Dajngo-Filter表格,然后能够获取更新的用户数量。我只找到了无数有关如何显示用户“列表”的文档。我已完成但没有有关如何显示自定义变量的文档。我要根据应用的过滤器来计算许多统计数据和图表。

class UserFilterView(LoginRequiredMixin, FilterView):
    template_name = 'community/user_list.html'
    model =  User
    filterset_class = UserFilter

    def get_queryset(self):
        user_count = User.objects.all().count()

    def get_context_data(self, *args, **kwargs):
        context = super(UserFilterView, self).get_context_data(*args, **kwargs)
        context['user_count'] = User.objects.all().count()
        return context
django django-rest-framework django-views django-class-based-views django-filter
1个回答
0
投票
context['user_count'] = User.objects.all().count()

设置为始终计算所有用户。因此,当然,它总是会按照编程的方式去做。

相反,我应该使用过滤后的查询集中的.count。

view.py

class UserFilterView(LoginRequiredMixin, FilterView):
    template_name = 'community/user_list.html'
    model =  User
    filterset_class = UserFilter

    def get_context_data(self, *args, **kwargs):
        context = super(UserFilterView, self).get_context_data(*args, **kwargs)
        context['qs'] = User.objects.all()
        return context

模板:

User Count: {{ filter.qs.count }}
© www.soinside.com 2019 - 2024. All rights reserved.