Pip*_*iam 14 python django decorator login-required
我的问题是一般的问题,但具体来说我的应用程序是Django的login_required装饰器.
我很好奇是否有办法检查视图/函数是否有特定的装饰器(在这种情况下是login_required装饰器)
我将用户注销后重定向,如果当前页面上有login_required装饰器,我想重定向到主页面.到目前为止,我的搜索没有得到任何结果.
Chr*_* W. 16
建立你自己的login_required装饰器并让它将功能标记为装饰 - 可能是标记它的最佳位置func_dict.
from django.contrib.auth.decorators import login_required as django_l_r
# Here you're defining your own decorator called `login_required`
# it uses Django's built in `login_required` decorator
def login_required(func):
decorated_func = django_l_r(func)
decorated_func.func_dict['login_is_required'] = True
return decorated_func
@login_required # Your decorator
def authenticatedd_view(request):
pass
def unauthenticated_view(request):
pass
Run Code Online (Sandbox Code Playgroud)
现在你可以检查视图是否像这样装饰......
# Assume `a_view` is view function
>>> a_view.func_dict.get('login_is_required',False)
Run Code Online (Sandbox Code Playgroud)
如果你对Python装饰器感到困惑,请看这个问题/答案:如何制作一系列函数装饰器?
| 归档时间: |
|
| 查看次数: |
6070 次 |
| 最近记录: |