如何在使用DjangoObjectPermissions时添加不返回模型或查询集的视图?

2024-09-28 23:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个视图,我想添加到我的django restframeworkapi中,它与任何模型都不相关。虽然我用的是“休息”_framework.permissions.djangObjectPermissions'在默认的“权限”类中。在

class EnumChoices(views.APIView):       
    def get(self, request):
        enums = {}
        return Response(enums)

现在Django抱怨我的观点:

^{pr2}$

我需要几乎所有其他视图的权限类,不想删除它。如何避开一个视图的强制属性?在


Tags: django模型视图权限permissionsgetdefframework
1条回答
网友
1楼 · 发布于 2024-09-28 23:36:13

您可以添加视图特定的权限逻辑来覆盖模型权限检查。创建一个BasePermission类对象并将其添加到“视图”“权限”“类”属性中。别忘了IsAuthenticated,除非你也允许匿名用户。在

class EnumChoices(views.APIView):
    class EnumPermission(permissions.BasePermission):
        def has_permission(self, request, view):
            # whatever permission logic you need, e.g.
            return request.user.has_perm("planning.view_enums")
    permission_classes = (permissions.IsAuthenticated, EnumPermission)

    def get(self, request):
        enums = {}
        return Response(enums)

现在,视图将确保用户已通过身份验证,并具有view\u enums权限。在

更多信息:http://www.django-rest-framework.org/api-guide/permissions/#custom-permissions

相关问题 更多 >