我想这样做:
@friendship_required
或
@friendship_required(request)
任何人都可以帮我把这个简单的函数变成装饰器吗我想我会经常使用它,觉得最好把它变成装饰器,或者我如何设置return
语句if {{ 1}}在我的设置文件中?感谢
hasattr
答案 0 :(得分: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):
...