1

私はこれをしたい:

@friendship_required

また

@friendship_required(request)

returnこの単純な関数をデコレータにするのを手伝ってくれる人はhasattrいますか? ありがとう

def friendship_checker(request):
    if hasattr(request.user,'friend'):
        pass
    else:
        return HttpResponseRedirect('/access-denied')
4

1 に答える 1

4
from functools import wraps

def friendship_checker(f):
    @wraps(f)
    def wrapped(request, *args, **kwargs):
        if hasattr(request.user, 'friend'):
            return f(request, *args, **kwargs)
        else:
            return HttpResponseRedirect('/access-denied')

    return wrapped

したがって、ビューを装飾するには:

@friendship_checker
def my_view(request):
    ...
于 2013-02-03T17:28:38.533 に答える