diff options
| author | Tom Christie | 2013-05-14 21:40:55 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-05-14 21:40:55 +0100 |
| commit | e939e1755a94b50c87a82c0f777645e28fe91bf0 (patch) | |
| tree | 31430086b910aa04926477a4ac6b3754e9d6e359 /rest_framework/tests | |
| parent | d62414147fa949af4db698afedae7b5506229a9f (diff) | |
| download | django-rest-framework-e939e1755a94b50c87a82c0f777645e28fe91bf0.tar.bz2 | |
Base automatic filterset model on the queryset model. Fixes #834.
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/filters.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/rest_framework/tests/filters.py b/rest_framework/tests/filters.py index 18972c84..a58c66ae 100644 --- a/rest_framework/tests/filters.py +++ b/rest_framework/tests/filters.py @@ -70,9 +70,19 @@ if django_filters: filter_fields = ['decimal', 'date'] filter_backend = filters.DjangoFilterBackend + class GetQuerysetView(generics.ListCreateAPIView): + serializer_class = FilterableItemSerializer + filter_class = SeveralFieldsFilter + filter_backend = filters.DjangoFilterBackend + + def get_queryset(self): + return FilterableItem.objects.all() + urlpatterns = patterns('', url(r'^(?P<pk>\d+)/$', FilterClassDetailView.as_view(), name='detail-view'), url(r'^$', FilterClassRootView.as_view(), name='root-view'), + url(r'^get-queryset/$', GetQuerysetView.as_view(), + name='get-queryset-view'), ) @@ -148,6 +158,17 @@ class IntegrationTestFiltering(CommonFilteringTestCase): self.assertEqual(response.data, expected_data) @unittest.skipUnless(django_filters, 'django-filters not installed') + def test_filter_with_get_queryset_only(self): + """ + Regression test for #834. + """ + view = GetQuerysetView.as_view() + request = factory.get('/get-queryset/') + view(request).render() + # Used to raise "issubclass() arg 2 must be a class or tuple of classes" + # here when neither `model' nor `queryset' was specified. + + @unittest.skipUnless(django_filters, 'django-filters not installed') def test_get_filtered_class_root_view(self): """ GET requests to filtered ListCreateAPIView that have a filter_class set |
