kml
kml

Reputation: 300

How to serialize groups of a user with Django-Rest-Framework

I'm trying to get users groups with Django REST framework, but only what I got is empty field named "groups".

This is my UserSerializer:

class UserSerializer(serializers.ModelSerializer):    
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff', 'groups')

any ideas how to get users groups data?

thanks in advance

Upvotes: 15

Views: 15457

Answers (2)

ronniesh
ronniesh

Reputation: 71

Something like this should work.

from django.contrib.auth.models import Group


class UserSerializer(serializers.ModelSerializer): 
    groups = serializers.SlugRelatedField(
        many=True,
        read_only=True,
        slug_field='name',
     )  
 
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff', 'groups',)

Upvotes: 7

Louis Barranqueiro
Louis Barranqueiro

Reputation: 10238

You have to specify that it's a nested relationships:

class GroupSerializer(serializers.ModelSerializer):    
    class Meta:
        model = Group
        fields = ('name',)

class UserSerializer(serializers.ModelSerializer):    
    groups = GroupSerializer(many=True)
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff', 'groups',)

Check documentation for more information : Nested relationships

Upvotes: 42

Related Questions