gpt4 book ai didi

python - 如何让Django 1.5 login_required装饰器返回403状态码

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:10 24 4
gpt4 key购买 nike

没有似乎有效的 raise_exception 参数。

@login_required
def hi (request):
return HttpResponse("hello")

我需要从 AJAX javascript 调用它,所以我不需要重定向,只需要 403 状态代码就可以了。

最佳答案

只需将支票放入 View 本身...

def hi(request):
if request.user.is_authenticated():
# Allow access.
else:
raise MyException()

...或使用您自己的应用类似逻辑的装饰器。

编辑:添加了示例装饰器。

from django.http.response import HttpResponseForbidden
from django.utils.decorators import available_attrs
from functools import wraps

def alt_login_required(function=None):
def decorator(view_func):
def _wrapped_view(request, *args, **kwargs):
if request.user.is_authenticated():
return view_func(request, *args, **kwargs)
else:
return HttpResponseForbidden()

return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view)
if function is None:
return decorator
else:
return decorator(function)

关于python - 如何让Django 1.5 login_required装饰器返回403状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com