我已经通过几个StackOverflow线程读过,但无法达到任何满意的工作解决方案。 我想有几个自定义权限,或多或少复杂(从ReadOnly到,限制用户...)。Django Rest框架和权限
让我们先用我现在所拥有的:
- 一个基类,只读
- 我的设置
- 为用户视图集。
- 和staff_user,谁,让我们崩溃的一切
我的基类的样子:
class ReadOnly(permissions.BasePermission):
"""
Only, always, ever allow read-only access.
"""
def has_permission(self, request, view):
if request.method in permissions.SAFE_METHODS:
return True
return False
,并相应地由例如用户的视图集中
class UserViewSet(viewsets.ModelViewSet):
"""
Retrieve the user associated with your session and allow all methods.
"""
serializer_class = UserSerializer
permission_classes = (ReadOnly,)
def get_queryset(self):
return User.objects.filter(id=self.request.user.id) # This should return an empty queryset when not logged in
及相应的秋天innerhited - 默认权限为
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'api.permissions.ReadOnly'
]
}
当我现在访问用户页面并以员工身份登录时,我可以通过POST轻松创建用户,同样适用于所有其他视图集。这里发生了什么?
您粘贴的代码*确实可以正常工作。 – Linovia