我已經通過幾個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