我正在开发django1.7和python2.7。为了防止对ajax post请求的csrf攻击,我在发送之前在ajax头中添加了csrf令牌。 在视图中,我添加了csrf\u protect decorator来检查令牌。在这种情况下一切正常。但在我的项目中视图.py在我还没有实现csrf令牌的其他视图中被内部调用,这导致403错误。所以呢我想做的是只有在有ajax后调用时才必须检查csrf\u protect decorator。其他电话都可以忽略。你知道吗
def check_token(func):
def wrapper(request, *args, **kwargs):
if request.is_ajax():
return csrf_protect(func(request,*args, **kwargs))
return func(request,*args, **kwargs )
return wrapper
@check_token
def myViews(request,mob,id):
"""function starts here"""
你的装饰师相当于
您可以手动将其应用于新名称:
现在你有一个装饰和非装饰的名字。你知道吗
从其他视图中调用视图并不是Django视图应该做的事情。如果你有一些通用的功能来设计一个响应,那就把它作为一个单独的函数。然后让受保护的视图调用该函数,其他视图也调用该函数:
相关问题 更多 >
编程相关推荐