如何使用Django Rest Framework序列化用户组



我试图用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',)

最新更新