From 378d6a1a1953d5d5629a06b83653849b8afa8a94 Mon Sep 17 00:00:00 2001 From: Eric Holscher Date: Wed, 28 Oct 2015 12:37:19 -0700 Subject: [PATCH 1/2] Allow HTML to render when no filter_class is defined. Previously it required a filter_class, or else it would error when calling `cls()`. This now sets the `filter` context to `None` if one does not exist. Fixes #3559 --- rest_framework/filters.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 9105ab91d..4eb7d6cca 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -118,7 +118,10 @@ class DjangoFilterBackend(BaseFilterBackend): def to_html(self, request, queryset, view): cls = self.get_filter_class(view, queryset) - filter_instance = cls(request.query_params, queryset=queryset) + if cls: + filter_instance = cls(request.query_params, queryset=queryset) + else: + filter_instance = None context = Context({ 'filter': filter_instance }) From 32bd1a2f0bc29480259fcb5ffa17dcb1aa9710a4 Mon Sep 17 00:00:00 2001 From: Eric Holscher Date: Wed, 28 Oct 2015 14:36:24 -0700 Subject: [PATCH 2/2] Use better names for filter variable --- rest_framework/filters.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 4eb7d6cca..a62139405 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -117,9 +117,9 @@ class DjangoFilterBackend(BaseFilterBackend): return queryset def to_html(self, request, queryset, view): - cls = self.get_filter_class(view, queryset) - if cls: - filter_instance = cls(request.query_params, queryset=queryset) + filter_class = self.get_filter_class(view, queryset) + if filter_class: + filter_instance = filter_class(request.query_params, queryset=queryset) else: filter_instance = None context = Context({