20 lines
608 B
Python
20 lines
608 B
Python
import django_filters
|
|
|
|
|
|
class FilterMixin(object):
|
|
filterset_class:django_filters.FilterSet
|
|
|
|
def get_filterset_class(self):
|
|
return self.filterset_class
|
|
|
|
def get_context_data(self, *, object_list=None, **kwargs):
|
|
context_data = super().get_context_data(**kwargs)
|
|
filter = self.get_filterset_class()(self.request.GET, queryset=self.get_queryset())
|
|
context_data['filter'] = filter
|
|
return context_data
|
|
|
|
def get_queryset(self):
|
|
qs = super().get_queryset()
|
|
qs = self.get_filterset_class()(self.request.GET, queryset=qs).qs
|
|
return qs
|
|
|