yie*_*tem 5 django django-permissions django-rest-framework
我有一个基本的视图集:
class UsersViewSet(viewsets.ModelViewSet):
permission_classes = (OnlyStaff,)
queryset = User.objects.all()
serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)
它绑定到/api/users/端点。我想创建一个用户个人资料页面,所以我只需要一个特定的用户,所以我可以从中检索它/api/users/<id>/,但问题是我想/api/users/<id>/被允许给任何人,但/api/users/要保留其权限OnlyStaff,所以没有人可以访问完整的用户列表。
注意:也许这不是一个很好的实现,因为任何人都可以蛮力增加 的数据id,但我愿意将其从 更改<id>为<slug>。
如何从详细路线中删除权限?
提前致谢。
JPG*_*JPG 14
重写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()Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2791 次 |
| 最近记录: |