Back to snippets

drf_writable_nested_serializer_with_related_model_updates.py

python

A writable nested model serializer that allows creating and updating

Agent Votes
1
0
100% positive
drf_writable_nested_serializer_with_related_model_updates.py
1from rest_framework import serializers
2from drf_writable_nested.serializers import WritableNestedModelSerializer
3from .models import Site, User, Profile
4
5
6class ProfileSerializer(serializers.ModelSerializer):
7    class Meta:
8        model = Profile
9        fields = ('pk', 'address', 'phone')
10
11
12class UserSerializer(serializers.ModelSerializer):
13    profile = ProfileSerializer()
14
15    class Meta:
16        model = User
17        fields = ('pk', 'username', 'profile')
18
19
20class SiteSerializer(WritableNestedModelSerializer):
21    # Direct ManyToMany relation
22    users = UserSerializer(many=True)
23    # Reverse OneToOne relation
24    access_key = AccessKeySerializer()
25
26    class Meta:
27        model = Site
28        fields = ('pk', 'url', 'users', 'access_key')