gpt4 book ai didi

python - 自定义权限返回始终为 true,django

转载 作者:行者123 更新时间:2023-12-01 02:40:41 24 4
gpt4 key购买 nike

抱歉我的英语不好。现在我学习 Django Rest 并尝试为用户创建自定义权限。 Fox 示例权限:“大”和“小”。

我的用户模型

class User(AbstractUser):
is_active = models.BooleanField(default=False)
email = models.EmailField(blank=False, unique=True)
avatar = models.ImageField(upload_to='avatar/users', blank=True)

class Meta:
permissions = (
("big", "this is big boy"),
("small", "this is small"),
)

然后我向用户添加了如下权限:

permission = Permission.objects.get(name='big')
user.user_permissions.add(permission)
user.save()

创建自定义类,它类检查权限:

class IsBigBoy(permissions.BasePermission):

def has_permission(self, request, view):
return request.user.has_perm('users.big')

并在 View 中创建测试类来检查我的自定义权限

class MySuperTestRequest(generics.CreateAPIView):
permission_classes = (permissions.IsAuthenticated, custom_permissions.IsBigBoy)
serializer_class = CreateSomethingSerializer

def post(self,
return Response({"detail": "good"}, status.HTTP_200_OK)

问题:

return request.user.has_perm('users.big')

它的代码总是返回true

最佳答案

您的逻辑可能需要用户 has_perms() ,并且不要忘记用户 is_superuser 是否拥有所有权限。

关于python - 自定义权限返回始终为 true,django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45757656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com