[django]编写作用于视图(view)的装饰器(Decorator)
本文假设读者已经知道如何编写基本的装饰器代码,否则请自行 google:“python 装饰器”and/or “python decorator”。
不带参数的装饰器
from functools import wraps def object_does_not_exist(func): @wraps(func) def returned_wrapper(request, *args, **kwargs): try: return func(request, *args, **kwargs) except ObjectDoesNotExist: raise Http404() return returned_wrapper
用法:
@object_does_not_exist def detail(request): pass
带参数的装饰器
-
第一种写法:
def object_does_not_exist(redirect=None): def decorator ...