Skip to content

Commit aa50d18

Browse files
author
Ryan P Kilby
authored
Fix empty viewset compatibility w/ browsable API (#263)
* Add rendering to 'disabled' viewset test * Allow views with empty filterset_class
1 parent 2fba26e commit aa50d18

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

rest_framework_filters/backends.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ def patch_for_rendering(self, request):
2929
def get_filterset_class(view, queryset=None):
3030
filterset_class = original(view, queryset)
3131

32+
# Don't break if filterset_class is not provided
33+
if filterset_class is None:
34+
return None
35+
3236
# django-filter compatibility
3337
if issubclass(filterset_class, FilterSet):
3438
filterset_class = filterset_class.disable_subset(depth=1)

tests/test_backends.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ def test_disabled(self):
106106
# filterset should be None, method should not error
107107
self.assertIsNone(backend().get_filterset(request, view.queryset, view))
108108

109+
# patched method should not error
110+
backend = backend()
111+
with backend.patch_for_rendering(request):
112+
self.assertIsNone(backend.get_filterset(request, view.queryset, view))
113+
109114

110115
class BackendRenderingTests(APITestCase):
111116

0 commit comments

Comments
 (0)