首页 > 解决方案 > 在实现权限时,如何让 Django 重定向到另一个页面而不是登录?

问题描述

我有一个适用于视图的权限:

@permission_required('app.admin_foo')
def fooView(request, id=None):
    ...

但默认行为是重定向到登录。当权限被拒绝时,如何让 Django 重定向到另一个视图?例如

return redirect(reverse('bar'))

更新

供您参考,可以将 Django 设置为在权限检查失败时重定向到自定义 403 页面。请参阅此页面上 Flimm 的回答:Django, Creating a custom 500/404 error page

标签: pythonpython-3.xdjango

解决方案


装饰器permission_required接受一个login_url参数,这个参数是用户将被重定向到的url而不是默认的settings.LOGIN_URL

@permission_required('app.admin_foo', login_url='/foo/')
def fooView(request, id=None):
    ...

推荐阅读