修改django装饰器函数,Permissionn_required

时间:2012-07-30 12:35:28

标签: python django decorator

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)