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  | 
