Skip to content

Commit 77ac0b2

Browse files
committed
Added SerializerMethodResourceRelatedField + RelatedMixin example
1 parent 9decc1f commit 77ac0b2

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

example/serializers.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,24 @@ class AuthorSerializer(serializers.ModelSerializer):
166166
queryset=Entry.objects,
167167
many=True
168168
)
169+
first_entry = relations.SerializerMethodResourceRelatedField(
170+
related_link_view_name='author-related',
171+
self_link_view_name='author-relationships',
172+
model=Entry,
173+
read_only=True,
174+
source='get_first_entry'
175+
)
169176
included_serializers = {
170177
'bio': AuthorBioSerializer,
171178
'type': AuthorTypeSerializer
172179
}
173180

174181
class Meta:
175182
model = Author
176-
fields = ('name', 'email', 'bio', 'entries', 'type')
183+
fields = ('name', 'email', 'bio', 'entries', 'first_entry', 'type')
184+
185+
def get_first_entry(self, obj):
186+
return obj.entries.first()
177187

178188

179189
class WriterSerializer(serializers.ModelSerializer):

example/views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ class AuthorViewSet(ModelViewSet):
9797
serializer_class = AuthorSerializer
9898
related_serializers = {
9999
'bio': 'example.serializers.AuthorBioSerializer',
100-
'entries': 'example.serializers.EntrySerializer'
100+
'entries': 'example.serializers.EntrySerializer',
101+
'first_entry': 'example.serializers.EntrySerializer'
101102
}
102103

103104

0 commit comments

Comments
 (0)