def __init__(self, queryset, request, view, filters=[]): self.original_queryset = queryset self.queryset = queryset self.request = request self.view = view self.selected_choices = {} self.filter_mapper = {} self.filters = [] logger.info('Initializing filterset %s' % self.filters) for filter in filters: filter_kwargs = { 'queryset': self.queryset, 'request': request, 'view': self.view } if type(filter) == str: constructed_filter = construct_object(filter, **filter_kwargs) else: constructed_filter = filter(**filter_kwargs) self.filters.append(constructed_filter) self.filter_mapper[constructed_filter.name] = constructed_filter if constructed_filter.is_active: self.queryset = constructed_filter.get_results()
def process_request(self, request): if self.override_url: try: original_urlconf = __import__(getattr(request, 'urlconf', settings.ROOT_URLCONF), {}, {}, ['*']) except TypeError: original_urlconf = request.urlconf for filter_location in settings.PRODUCT_LIST_FILTERS: filter = construct_object(filter_location, **{'queryset': None, 'request': request, 'view': 'novomore.apps.catalog.views.product_showcase_list'}) if hasattr(filter, 'get_urls'): original_urlconf.urlpatterns = filter.get_urls() + original_urlconf.urlpatterns self.override_url = False request.urlconf = original_urlconf
def __init__(self, queryset, request, view, filters=[]): self.original_queryset = queryset self.queryset = queryset self.request = request self.view = view self.selected_choices = {} self.filter_mapper = {} self.filters = [] logger.info('Initializing filterset %s' % self.filters) for filter in filters: filter_kwargs = {'queryset': self.queryset, 'request': request, 'view': self.view} if type(filter) == str: constructed_filter = construct_object(filter, **filter_kwargs) else: constructed_filter = filter(**filter_kwargs) self.filters.append(constructed_filter) self.filter_mapper[constructed_filter.name] = constructed_filter if constructed_filter.is_active: self.queryset = constructed_filter.get_results()