Skip to main content
 首页 » 编程设计

python之修改django装饰器函数,Permissionn_required

2025年05月04日25sky-heaven

默认情况下,装饰器@permission_required($SOME_PERMISSION),检查请求用户是否具有请求此 View 所需的权限,如果没有,则重定向到登录页面或任何其他指定页面。(例如,如果用户未登录,他将被重定向到登录页面)。
这是我的问题,我想将未登录的用户重定向到登录页面,但可能有一个登录用户没有所需的权限,默认情况下该用户被重定向到登录页面,而且他已经如此登录,他再次被重定向到他请求的页面,这里发生了一个循环。
所以我想做的是改变这个装饰器的行为(在我的 View 函数中写一个等效的代码而不是使用@permission_required)来检查用户是否因为没有登录而看不到请求的页面,或者他是登录但没有权限,然后将他相应地重定向到正确的页面。 任何帮助将不胜感激:)
提前致谢

请您参考如下方法:

只需将login_url 参数传递给permission_required,例如:

@permission_required($SOME_PERMISSION, login_url='/my/custom/page')