获取搜索结果的长度

时间:2019-07-18 01:55:12

标签: python django python-3.x

我在Django中有一个ListView,可以返回页面上search bar中与关键字(用户名,名字,姓氏)匹配的所有用户。 代码看起来像这样

class SearchView(ListView):
    model = User
    template_name = 'blog/list_of_users.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        user_name = self.request.GET.get('search', '')
        if len(user_name) < 1:
            context['all_search_results'] = False
            return context
        context['all_search_results'] = User.objects.filter(username__icontains=user_name ) or User.objects.filter(last_name__icontains=user_name ) or User.objects.filter(first_name__icontains=user_name )
        return context

我以这种方式在模板中显示:

{% if not all_search_results %}
  <div class="alert alert-danger">
    No User
  </div>
{% else %}
  {% for result in all_search_results %}
      {{ result.username }}


etc.....

我想在模板上显示匹配结果的长度(数量)。我该如何更改我的代码?

2 个答案:

答案 0 :(得分:1)

由于all_search_results上下文变量包含查询集,因此可以使用count

{{all_search_results.count}}

答案 1 :(得分:0)

因为两者都起作用 {{all_search_results | length}}