我在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.....
我想在模板上显示匹配结果的长度(数量)。我该如何更改我的代码?
答案 0 :(得分:1)
由于all_search_results
上下文变量包含查询集,因此可以使用count
,
{{all_search_results.count}}
答案 1 :(得分:0)
因为两者都起作用 {{all_search_results | length}}