Once your WritableNestedModelSerializer is defined, you can pass nested dictionaries or lists in the data argument to .is_valid() and .save(). The serializer will automatically handle the creation/update of all nested relations.
data = {
'username': 'test',
'profile': {
'access_key': {
'key': 'key',
},
'sites': [
{'url': 'http://google.com'},
{'url': 'http://yahoo.com'},
],
'avatars': [
{'image': 'image-1.png'},
{'image': 'image-2.png'},
],
},
}
user_serializer = UserSerializer(data=data)
user_serializer.is_valid(raise_exception=True)
user = user_serializer.save()
data = {
'username': 'test',
'profile': {
'access_key': {
'key': 'key',
},
'sites': [
{
'url': 'http://google.com',
},
{
'url': 'http://yahoo.com',
},
],
'avatars': [
{
'image': 'image-1.png',
},
{
'image': 'image-2.png',
},
],
},
}
user_serializer = UserSerializer(data=data)
user_serializer.is_valid(raise_exception=True)
user = user_serializer.save()