2015-03-20 2 views
4

У меня есть базовая установка рамочного остального:Как включить @cache_page для некоторых взглядов Django Rest Framework?

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

Я хочу кэшировать этот запрос, используя @cache_page декоратора. Я пробовал что-то глупое:

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

который не работает. Как я могу обернуть эти представления правильно?

+0

http://stackoverflow.com/a/21293871/846892 –

+0

@AshwiniChaudhary спасибо, вы хотите опубликовать его в качестве ответа, чтобы я мог его принять. – serg

+0

возможно дубликат [кэш \ _page с Основываясь Просмотры класса] (http://stackoverflow.com/questions/21293543/cache-page-with-class-based-views) –

ответ

6

С таким же декоратором вы можете использовать в шаблонах 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') 
)