在1.7中,permission_required方法也接受权限列表,但是如果允许列表中的所有权限,它只返回True。如果允许任何权限,我需要它返回True。
我该怎么做?
答案 0 :(得分:2)
我使用user_passes_test:
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
如果您需要更复杂的东西(例如:权限列表因视图而异),我考虑编写自定义装饰器。