首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >或DjangoRestFramework的样式权限

或DjangoRestFramework的样式权限
EN

Stack Overflow用户
提问于 2016-02-09 00:25:31
回答 1查看 51关注 0票数 2

我想知道是否有人找到了一种很好的方法来逆转DRF中权限的工作方式(使用OR而不是和)。现在,如果任何检查失败,则请求没有经过身份验证。我想要一种方法,这样如果任何检查通过,请求就会被认证。即。

代码语言:javascript
复制
# currently:
permission_classes=(HasNiceHat, HasNicePants)

如果你有一顶漂亮的帽子,裤子,请求就会失败。我想要的:

代码语言:javascript
复制
# goal:
AND_permission_classes=(HasNiceHat, HasNicePants)

如果用户有漂亮的帽子,漂亮的裤子,就会成功。

我将假设所有用户都已登录(必须通过任何一种检查),并且权限的实现不受任何限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 03:38:01

您能创建自己的权限类并使用它吗?例如:

代码语言:javascript
复制
from rest_framework import permissions

class HasNiceHatOrHasNicePants(permissions.BasePermission):
    """
    Permission to check if user has a Nice Hat or has Nice Pants.
    If both are False do not return anything.
    """
    def has_permission(self, request, view):

        if request.user.has_nicehat() or request.user.has_nicepants():
            return True

然后,将这个新类导入视图,并按如下方式使用:

代码语言:javascript
复制
permission_classes = (HasNiceHatOrHasNicePants,)

看起来条件具有您所需的功能

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35281863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档