2017-07-04 213 views
0

我是Django的新手。我使用DRF創建了REST API。我的Django有3個應用程序。所以現在我想申請認證。我看到了很多幫助,但我沒有正確應用認證。我也希望模型應該附加到用戶。這樣一個用戶就看不到其他的用戶條目。任何人都可以幫助我告訴如何實現這一點細節?Django Rest框架身份驗證問題

在此先感謝。如果有人回答會很有幫助。

+0

你嘗試過什麼到目前爲止?顯示部分代碼.. – zaidfazil

+0

我已經包含在模型中的一個店主: '所有者= models.ForeignKey( 'auth.User',related_name = '工作',on_delete = models.CASCADE)' 在視圖中我有包括: 'permission_classes =(permissions.IsAuthenticated,)' – adarsh

回答

0

您可以添加自定義權限,

class IsOwnerOnlyAllowed(permissions.BasePermission): 

    def has_object_permission(self, request, view, obj): 
     return obj.owner == request.user 

您可以添加permission_classes = (IsOwnerOnlyAllowed,)

此外,您還可以覆蓋你的觀點的queryset屬性只提供這都與在用戶記錄的條目。

編輯您的看法,

from rest_framework import generics 
from .models import DatasetModel 
from .serializer import DatasetSerializer 

class DatasetView(generics.ListCreateAPIView): 
    queryset = DatasetModel.objects.all() 
    serializer_class = DatasetSerializer 

    def get_queryset(self): 
     return self.queryset.filter(owner=self.request.user) 
+0

請您詳細說明如何做到這一點? – adarsh

+0

您能否爲您展示您的觀點? – zaidfazil

+0

'從rest_framework進口泛型 從.models導入DatasetModel 從.serializer進口DatasetSerializer 類DatasetView(generics.ListCreateAPIView): 查詢集= DatasetModel.objects.all() serializer_class = DatasetSerializer' – adarsh