独自の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
これで、ビューがこのように装飾されたかどうかを確認できます...
# Assume `a_view` is view function
>>> a_view.func_dict.get('login_is_required',False)
Python デコレータについて混乱している場合は、この SO の質問/回答を参照してください:関数デコレータのチェーンを作成するには?