Skip to content

Commit 061cacd

Browse files
scottfiskjerel
authored andcommitted
Remove check for relation_instance as it is not always available (#278)
Closes issue #270
1 parent 43fd5ee commit 061cacd

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

example/tests/unit/test_renderers.py

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from example.models import Entry, Comment
2+
from rest_framework_json_api import serializers, views
3+
from rest_framework_json_api.renderers import JSONRenderer
4+
5+
6+
# serializers
7+
class RelatedModelSerializer(serializers.ModelSerializer):
8+
class Meta:
9+
model = Comment
10+
fields = ('id',)
11+
12+
13+
class DummyTestSerializer(serializers.ModelSerializer):
14+
'''
15+
This serializer is a simple compound document serializer which includes only
16+
a single embedded relation
17+
'''
18+
related_models = RelatedModelSerializer(
19+
source='comment_set', many=True, read_only=True)
20+
21+
class Meta:
22+
model = Entry
23+
fields = ('related_models',)
24+
25+
class JSONAPIMeta:
26+
included_resources = ('related_models',)
27+
28+
29+
# views
30+
class DummyTestViewSet(views.ModelViewSet):
31+
queryset = Entry.objects.all()
32+
serializer_class = DummyTestSerializer
33+
34+
35+
def test_simple_reverse_relation_included_renderer():
36+
'''
37+
Test renderer when a single reverse fk relation is passed.
38+
'''
39+
serializer = DummyTestSerializer(instance=Entry())
40+
renderer = JSONRenderer()
41+
rendered = renderer.render(
42+
serializer.data,
43+
renderer_context={'view': DummyTestViewSet()})
44+
45+
assert rendered

rest_framework_json_api/renderers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def extract_relationships(fields, resource, resource_instance):
199199
})
200200
continue
201201

202-
if isinstance(field, ListSerializer) and relation_instance is not None:
202+
if isinstance(field, ListSerializer):
203203
resolved, relation_instance = utils.get_relation_instance(resource_instance, source, field.parent)
204204
if not resolved:
205205
continue

0 commit comments

Comments
 (0)