diff --git a/docs/usage.md b/docs/usage.md index 7b0b6cc0..b61d6548 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -373,7 +373,7 @@ class LineItemViewSet(viewsets.ModelViewSet): serializer_class = LineItemSerializer def get_queryset(self): - queryset = self.queryset + queryset = super(LineItemViewSet, self).get_queryset() # if this viewset is accessed via the 'order-lineitems-list' route, # it wll have been passed the `order_pk` kwarg and the queryset diff --git a/example/tests/test_relations.py b/example/tests/test_relations.py index b4f40446..e7d27b76 100644 --- a/example/tests/test_relations.py +++ b/example/tests/test_relations.py @@ -129,8 +129,13 @@ def test_invalid_resource_id_object(self): } +class BlogResourceRelatedField(ResourceRelatedField): + def get_queryset(self): + return Blog.objects + + class BlogFKSerializer(serializers.Serializer): - blog = ResourceRelatedField(queryset=Blog.objects) + blog = BlogResourceRelatedField() class EntryFKSerializer(serializers.Serializer): diff --git a/rest_framework_json_api/mixins.py b/rest_framework_json_api/mixins.py index 7b98d62e..1fa8741d 100644 --- a/rest_framework_json_api/mixins.py +++ b/rest_framework_json_api/mixins.py @@ -12,10 +12,11 @@ def get_queryset(self): """ Override :meth:``get_queryset`` """ + queryset = super(MultipleIDMixin, self).get_queryset() if hasattr(self.request, 'query_params'): ids = dict(self.request.query_params).get('ids[]') else: ids = dict(self.request.QUERY_PARAMS).get('ids[]') if ids: - self.queryset = self.queryset.filter(id__in=ids) - return self.queryset + queryset = queryset.filter(id__in=ids) + return queryset diff --git a/rest_framework_json_api/relations.py b/rest_framework_json_api/relations.py index a6d99c5e..27644919 100644 --- a/rest_framework_json_api/relations.py +++ b/rest_framework_json_api/relations.py @@ -150,7 +150,7 @@ def to_internal_value(self, data): if not isinstance(data, dict): self.fail('incorrect_type', data_type=type(data).__name__) - expected_relation_type = get_resource_type_from_queryset(self.queryset) + expected_relation_type = get_resource_type_from_queryset(self.get_queryset()) serializer_resource_type = self.get_resource_type_from_included_serializer() if serializer_resource_type is not None: