I've got a problem with DRF serialization. My main goal is to create an instance which has a related field but instead of providing the related models id
i want to use it's other unique field. At the same time when I will serialize my model to present it (not create) i would like to get the default related fields value. Here's an example
class Comment(models.Model):
description = models.TextField()
creator = models.ForeignKey(User, ...)
x = Creator.objects.get(pk=1)
print(x.unique_field)
> 'some data'
client.post('comment-detail', data={
'description': 'some description',
'creator_unique_field': 'some data'
})
# this should create a comment while using some unique creators field
# which is not pk or id
print(client.get('comment-detail', data={'pk':1}))
{
'description' 'some description',
'creator': 1,
}
I don't know If i should change models Serializer of ViewSet's create()
and retrieve()
. Im starting with DRF and can't get my head around it
Overriding the Serializer create method is a good place for this. one can query for the
unique_field
user there.