blob: dbae2393700b3ec3d9a39ad3d3deb61c125572ac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class QuerysetFilter(object):
""" Filter for a queryset """
def __init__(self, criteria=None):
if criteria:
self.set_criteria(criteria)
def set_criteria(self, criteria = None):
"""
criteria is an instance of django.db.models.Q;
see https://docs.djangoproject.com/en/1.9/ref/models/querysets/#q-objects
"""
self.criteria = criteria
def filter(self, queryset):
"""
Filter queryset according to the criteria for this filter,
returning the filtered queryset
"""
if self.criteria:
return queryset.filter(self.criteria)
else:
return queryset
def count(self, queryset):
""" Returns a count of the elements in the filtered queryset """
return self.filter(queryset).count()
|