gpt4 book ai didi

django - DRF Viewset 删除详细路线的权限

转载 作者:行者123 更新时间:2023-12-04 23:12:40 25 4
gpt4 key购买 nike

我有一个基本的 View 集:

class UsersViewSet(viewsets.ModelViewSet):
permission_classes = (OnlyStaff,)
queryset = User.objects.all()
serializer_class = UserSerializer

它绑定(bind)到 /api/users/端点。我想创建一个用户个人资料页面,所以我只需要一个特定的用户,所以我可以从 /api/users/<id>/ 检索它,但问题是我想要 /api/users/<id>/允许任何人,但 /api/users/保留其许可 OnlyStaff ,因此没有人可以访问完整的用户列表。

注意:也许这不是一个很好的实现,因为任何人都可以强制增加 id 的数据。 , 但我愿意从 <id> 更改它至 <slug> .

如何从详细路由中删除权限?

提前致谢。

最佳答案

覆盖 get_permissions() 方法如下

from rest_framework.permissions import AllowAny


class UsersViewSet(viewsets.ModelViewSet):
permission_classes = (OnlyStaff,)
queryset = User.objects.all()
serializer_class = UserSerializer

def get_permissions(self):
if self.action == 'retrieve':
return [AllowAny(), ]
return super(UsersViewSet, self).get_permissions()

关于django - DRF Viewset 删除详细路线的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543849/

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