gpt4 book ai didi

python - django rest 框架权限 'isAdminorReadonly'

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:15 24 4
gpt4 key购买 nike

我只希望管理员向模型添加内容,但任何人都可以阅读。是否有任何现有的权限类可供我使用。或者没有对象级别权限的最佳方法是什么。相同的代码是

class TagList(generics.ListCreateAPIView):
serializer_class = TagSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('title',)
def get_queryset(self):
return Tag.objects.all()

最佳答案

让我们具体回答您的问题。

  1. 是否有任何现有的权限类可供我使用?

回答:不可以。drf(直到第 3 版)没有提供对管理员的完全访问权限和对任何人(我相信也是匿名的)只读的权限。

  1. 没有对象级权限的最佳方法是什么?

回答:我建议有一个自定义 View 级别的权限,如下所示:

from rest_framework.permissions import IsAdminUser, SAFE_METHODS

class IsAdminUserOrReadOnly(IsAdminUser):

def has_permission(self, request, view):
is_admin = super(
IsAdminUserOrReadOnly,
self).has_permission(request, view)
# Python3: is_admin = super().has_permission(request, view)
return request.method in SAFE_METHODS or is_admin

关于python - django rest 框架权限 'isAdminorReadonly',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37968770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com