動作しているように見える raise_exception パラメータはありません。
@login_required
def hi (request):
return HttpResponse("hello")
これを AJAX JavaScript から呼び出す必要があるため、リダイレクトは必要ありません。ステータス コード 403 だけで十分です。
動作しているように見える raise_exception パラメータはありません。
@login_required
def hi (request):
return HttpResponse("hello")
これを AJAX JavaScript から呼び出す必要があるため、リダイレクトは必要ありません。ステータス コード 403 だけで十分です。
ビュー自体にチェックを入れるだけです...
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)