【问题标题】:Limit user to access a APIView限制用户访问 APIView
【发布时间】:2018-01-16 17:32:08
【问题描述】:

我想获取用户的详细信息:

class UserDetailAPIView(RetrieveAPIView):
    """
    User detail information
    """
    queryset = User.objects.filter(is_valid=True).exclude(status=4)
    serializer_class = UserDetailSerializer
    lookup_field = "username"

我想限制其他用户访问这个 APIView,我只希望管理员用户和它自己的用户访问它。

如何限制?

【问题讨论】:

  • 在 Django REST 框架文档中,您需要了解的所有信息,尤其是权限页面。

标签: python django django-rest-framework


【解决方案1】:

你应该定义你自己的权限类。像这样:

from rest_framework import permissions


class OwnerProfilePermission(permissions.BasePermission):
    """object lvl permissions for owner """
    def has_object_permission(self, request, view, obj):
        return obj.user == request.user

在您的观点中包括permission_classes。请参阅 DRF 文档。 http://www.tomchristie.com/rest-framework-2-docs/api-guide/permissions

您选择的类基础视图很重要。 http://www.tomchristie.com/rest-framework-2-docs/api-guide/generic-views

【讨论】:

  • 我要在APIView中判断用户。有可能吗?
  • 对于创建模型,您可以使用 CreateAPI 视图。对于更新使用 UpdateAPIView。对于查看模型 RetrieveAPIView。
猜你喜欢
  • 2015-07-23
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多