我在视图上有一个自定义装饰器,我必须在处理一些请求变量后缓存该视图。我的装饰器代码是这样的
def custom_dec(view_func):
@wraps(view_func, assigned=available_attrs(view_func))
def wrapper(request,filters,*args,**kwargs):
# do some processing on request and filters
return csrf_exempt(cache_page(900, view_func))
return wrapper
我已将装饰器应用为:
@custom_dec
def myview(request,filters,*args,**kwargs):
# view code here
问题是运行此代码在通过中间件时给我一个错误:
异常类型:AttributeError
异常值:“function”对象没有属性“status_code”
当我查看响应时,它是函数 myview 而不是视图的响应。
回复<function myview at 0xb549e534>
我的代码有什么问题?
更新:如果我将 warpper 函数中的返回值更改为,代码运行良好,
return view_func
这意味着我在应用缓存页面装饰器时必须做错事。