diff --git a/rest_framework_nested/viewsets.py b/rest_framework_nested/viewsets.py index 960aa201..69ed0085 100644 --- a/rest_framework_nested/viewsets.py +++ b/rest_framework_nested/viewsets.py @@ -46,6 +46,9 @@ def get_queryset(self): """ queryset = super(NestedViewSetMixin, self).get_queryset() + if getattr(self, 'swagger_fake_view', False): + return queryset + orm_filters = {} parent_lookup_kwargs = self._get_parent_lookup_kwargs() for query_param, field_name in parent_lookup_kwargs.items(): diff --git a/tests/test_viewsets.py b/tests/test_viewsets.py index 46294cb9..22d17275 100644 --- a/tests/test_viewsets.py +++ b/tests/test_viewsets.py @@ -9,6 +9,7 @@ from rest_framework.serializers import HyperlinkedModelSerializer, ModelSerializer from rest_framework.viewsets import ModelViewSet from rest_framework.reverse import reverse as drf_reverse +from rest_framework.schemas import generators from rest_framework_nested.routers import NestedSimpleRouter from rest_framework_nested.serializers import NestedHyperlinkedModelSerializer @@ -210,3 +211,13 @@ def test_create_child_on_viewset_with_mixin(self): kwargs={'pk': self.root_1.pk}, request=response.wsgi_request) self.assertEqual(data['parent'], parent_url) + + def test_get_queryset_for_children_resource(self): + gen = generators.BaseSchemaGenerator() + gen._initialise_endpoints() + for path, method, callback in gen.endpoints: + view = gen.create_view(callback, method) + # drf_yasg set swagger_fake_view attribute for all view + setattr(view, 'swagger_fake_view', True) + # no error message should be raised here + view.get_queryset()