【问题标题】:Django Rest Framework Authentication IssuesDjango Rest 框架身份验证问题
【发布时间】:2017-07-04 07:10:14
【问题描述】:

我是 Django 的新手。我使用 DRF 创建了 REST API。我的 Django 有 3 个应用程序。所以现在我想申请身份验证。我已经看到了很多帮助,但我没有正确应用身份验证。我还希望模型应该附加给用户。这样一个用户就看不到另一个用户条目。谁能帮我详细说说如何实现这个?

提前致谢。如果有人回答将是一个很大的帮助。

【问题讨论】:

  • 到目前为止你有什么尝试??显示一些代码..
  • 我已将所有者包含在其中一个模型中:owner = models.ForeignKey('auth.User', related_name='jobs', on_delete=models.CASCADE) 在我包含的视图中:permission_classes = (permissions.IsAuthenticated,)

标签: django authentication django-rest-framework


【解决方案1】:

您可以添加自定义权限,

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)

【讨论】:

  • 你能详细说明如何做到这一点吗?
  • from rest_framework import generics from .models import DatasetModel from .serializer import DatasetSerializer class DatasetView(generics.ListCreateAPIView): queryset=DatasetModel.objects.all() serializer_class = DatasetSerializer
猜你喜欢
  • 2013-06-29
  • 2017-09-26
  • 2017-11-02
  • 2019-03-01
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2023-03-16
相关资源
最近更新 更多