Does anybody knows how can I use count based on selected value using django_filters
Error
JavaScript
x
2
1
'UserFilter' object has no attribute 'count'
2
My Reference link
views.py
JavaScript
1
7
1
def search(request):
2
user_list = Person.objects.all()
3
user_filter = UserFilter(request.GET, queryset=user_list)
4
count = user_filter.count() #this will return an error
5
print(count)
6
return render(request, 'user_list.html', {'filter': user_filter})
7
filters.py
JavaScript
1
9
1
from django.contrib.auth.models import User
2
from .models import Person
3
import django_filters
4
5
class UserFilter(django_filters.FilterSet):
6
class Meta:
7
model = Person
8
fields = ['category', 'firstname', 'lastname' ]
9
user_list.html
JavaScript
1
30
30
1
{% extends 'base.html' %}
2
{% block content %}
3
<form method="get">
4
{{filter.form.as_p}}
5
<button type="submit" >Search</button>
6
</form>
7
<table class="table table-bordered">
8
<thead>
9
<tr>
10
<th>Firstname</th>
11
<th> Lastname</th>
12
<th>Caegory</th>
13
</tr>
14
</thead>
15
<tbody>
16
{% for user in filter.qs %}
17
<tr>
18
<td>{{ user.firstname }}</td>
19
<td>{{ user.lastname }}</td>
20
<td>{{ user.category }}</td>
21
</tr>
22
{% empty %}
23
<tr>
24
<td colspan="5">No data</td>
25
</tr>
26
{% endfor %}
27
</tbody>
28
</table>
29
{% endblock %}
30
I want to count all the list base from data I filtered
Advertisement
Answer
You’ll want the count of the resulting queryset, which you can get from the filter’s qs
property (as you do in your template!).
Change
JavaScript
1
2
1
count = user_filter.count()
2
to
JavaScript
1
2
1
count = user_filter.qs.count()
2