如何在Django自定义组?

2024-09-30 01:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个Django项目,并使用默认的组和权限。你知道吗

当我列出或检索组时,数据如下:

{
    "id": 2,
    "name": "group02",
    "permissions": [
        22,
        23,
        24
    ]
}

我看不到permissions名称和users属于Group实例。你知道吗

我如何优化它以满足我的需求?你知道吗


Tags: 数据项目django实例name名称id权限
1条回答
网友
1楼 · 发布于 2024-09-30 01:26:13

如果您想在dajngoshell中看到结果,那么可以尝试以下方法:User.objects.values('id','username','groups','groups__permissions')

如果您正在使用Django Rest Framework,那么您可以使用ModelSerializer,如下所示;

from django.contrib.auth.models import Group,Permission,User


class GroupSerializer(serializers.ModelSerializer):
    permissions = serializers.StringRelatedField(many=True)
    class Meta:
        model = Group
        fields = ('id','name','permissions')


class UserSerializer(serializers.ModelSerializer):
    groups = GroupSerializer(many=True)

    class Meta:
        model = User
        fields = ('id', 'username', 'groups')

预期产量

[
    {
            "id": 49,
            "username": "jerinpetergeorge",
            "groups": [
                {
                    "id": 2,
                    "name": "NewGroup",
                    "permissions": [
                        "activity | activity | Can change activity"
                    ]
                },
                {
                    "id": 1,
                    "name": "test",
                    "permissions": [
                        "activity | activity | Can add activity",
                        "activity | activity | Can change activity",
                        "activity | activity | Can delete activity"
                    ]
                }
            ]
        },

    {
        ...
        ...
    }
]

相关问题 更多 >

    热门问题