2017-07-04 163 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