如何为某些Django Rest Framework视图启用@cache_page?

ser*_*erg 4 python django django-cache django-rest-framework

我有基本的休息框架设置:

url(r'^items/$', ItemList.as_view(), name='item-list'),
...
class ItemList(generics.ListCreateAPIView):
    model = Item
    serializer_class = ItemSerializer
Run Code Online (Sandbox Code Playgroud)

我想使用@cache_page装饰器缓存此请求.我尝试过像愚蠢的东西:

url(r'^items/$', cached_items, name='item-list'),
...
@cache_page(1000)
def cached_items(request):
    return ItemList.as_view()
Run Code Online (Sandbox Code Playgroud)

这不起作用.如何正确包装这些视图?

小智 7

使用相同的装饰器,您可以在url模式中使用类视图作为简单视图(使用.as_view方法)

from django.views.decorators.cache import cache_page

urlpatterns = ('',
    url(r'^items/$', cache_page(60 * 60)(ItemList.as_view()), name='item-list')
)
Run Code Online (Sandbox Code Playgroud)