How to have an object's json inside inside another using Django Rest

Viewed 17

I have 2 models:

class User(AbstractUser):
    pass

class Post(models.Model):
    likers = models.ManyToManyField('User', blank=True, null=True, related_name='liked_posts')

Post model has a manytomany field to User model. I serialize them separately using rest like this:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = '__all__'


class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

Post model's json, displays the user object's id in 'likers': 'likers': 1. Is there a way to send the user's json instead of it's id? Something like:

{
    'likers': [
        '1':
            'username': foo
    ]
}
1 Answers

You can use the UserSerializer for the likers:

class PostSerializer(serializers.ModelSerializer):
    likers = UserSerializer(many=True)
    class Meta:
        model = Post
        fields = '__all__'
Related