You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF中‘显式设置权限(set permissions explicitly)’的含义是什么?

DRF中set permissions explicitly的含义

set permissions explicitly指的是直接在单个视图(或视图集)中指定权限类,这种设置会覆盖全局的默认权限配置。

具体来说,有两种常见的实现方式:

  • 在类视图中通过permission_classes属性定义权限:
from rest_framework.permissions import IsAuthenticated
from rest_framework.views import APIView

class PrivateDataView(APIView):
    permission_classes = [IsAuthenticated]  # 显式设置仅认证用户可访问

    def get(self, request):
        return Response({"data": "仅限认证用户查看的内容"})
  • 在视图集中同样通过permission_classes指定权限:
from rest_framework.permissions import IsAdminUser
from rest_framework.viewsets import ModelViewSet
from .models import Product
from .serializers import ProductSerializer

class ProductAdminViewSet(ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
    permission_classes = [IsAdminUser]  # 显式设置仅管理员可操作

按照你提到的博客内容,全局配置的DEFAULT_PERMISSION_CLASSES只会对没有显式设置权限的视图生效。另外,显式设置的权限类不一定非要用DRF内置的,你完全可以用自己编写的自定义权限类。

内容的提问来源于stack exchange,提问作者Parth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:15:38