我试图用Django REST框架获取用户组,但得到的只是名为"groups"的空字段。
这是我的UserSerializer:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'is_staff', 'groups')
如何获取用户组数据有什么想法吗?
提前感谢
您必须指定它是嵌套关系:
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',)
查看文档以获取更多信息:嵌套关系
这样的东西应该可以工作。
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',)