似乎唯一有效的方法是在 urls.py 中添加装饰器,这很丑陋。
有什么方法可以在视图中应用这个装饰器吗?
class HomeView(View):
@method_decorator(cache_page(60 * 60))
def dispatch(self, *args, **kwargs):
return super(HomeView, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过上述方法,但似乎不起作用。
根据文档,您可以使用method_decorator来装饰视图的方法。最简洁的方法是这样的:dispatch()
from django.utils.decorators import method_decorator
from django.views.generic import ListView
@method_decorator(cache_page(60*60), name='dispatch')
class MyListView(ListView):
# Your view code here.
Run Code Online (Sandbox Code Playgroud)