Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Get permission\如果允许权限列表中的任何权限,则需要返回True_Django - Fatal编程技术网

Django Get permission\如果允许权限列表中的任何权限,则需要返回True

Django Get permission\如果允许权限列表中的任何权限,则需要返回True,django,Django,在1.7中,permission_required方法也接受一个权限列表,但是只有当列表中的所有权限都被允许时,它才会返回True。如果允许任何权限,我需要它返回True 我该怎么做 我会使用: 如果你需要更复杂的东西(例如:许可列表根据视图不同),我会考虑编写自定义的装饰器。我最终写了一个定制的装饰器。谢谢 from django.contrib.auth.decorators import user_passes_test def manage_access(user): perm

在1.7中,permission_required方法也接受一个权限列表,但是只有当列表中的所有权限都被允许时,它才会返回True。如果允许任何权限,我需要它返回True

我该怎么做

我会使用:


如果你需要更复杂的东西(例如:许可列表根据视图不同),我会考虑编写自定义的装饰器。

我最终写了一个定制的装饰器。谢谢
from django.contrib.auth.decorators import user_passes_test

def manage_access(user):
    permissions_list = ['app.perm1', 'app.perm2', 'app.perm3', ]

    for permission in permissions_list:
        if user.has_perm(permission):
           return True

    return False

@user_passes_test(manage_access)
def my_view(request):
    #view code