[英]Configuring user permissions with django
我用 Django 寫了一個 API 服務。 我已授權用戶通過 django 管理面板僅列出客戶端。 當我用我授權的用戶名進入django管理面板時,授權沒有問題。
但是當我訪問api服務時,他從來沒有看到權限。
你能幫助我嗎 ?
api/permissions.py
from rest_framework.permissions import BasePermission
class IsOwner(BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_authenticated
message = "you cannot change data that you do not own !"
def has_object_permission(self, request, view, obj):
return (obj.user == request.user) or request.user.is_superuser
視圖.py
class CustomerListAPIView(ListAPIView):
serializer_class = CustomerCreateSerializer
permission_classes = [IsOwner]
filter_backends = [SearchFilter]
search_fields = ['customerName', 'customerSurname', 'customerIdentityNo']
def get_queryset(self):
queryset = Customer.objects.filter(user=self.request.user)
return queryset
設置.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissions'
]
}
朋友們,
當我運行 api 時,它根本不輸入“ has_object_permission ”。 當我使用用戶帳戶從管理面板登錄時,它只會進入“has_object_permission”。 當我運行 API 時,它永遠不會進入“has_object_permission”。
print(request.user)
來執行此操作。我寫這個作為答案是因為評論長度不夠。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.