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

kml*_*kml 11 python django rest django-rest-framework

我正在尝试使用Django REST框架获得用户组,但只有我得到的是名为"groups"的空字段.

这是我的UserSerializer:

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

任何想法如何获得用户组数据?

提前致谢

Lou*_*iro 25

您必须指定它是嵌套关系:

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',)
Run Code Online (Sandbox Code Playgroud)

检查文档以获取更多信息:嵌套关系

  • 并且您需要添加此导入“from django.contrib.auth.models import Group” (2认同)

小智 7

像这样的东西应该有效。

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',)
Run Code Online (Sandbox Code Playgroud)