Reputation: 300
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
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
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