python - 如何为某些 Django Rest Framework View 启用@cache_page?

标签 python django django-rest-framework django-cache

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

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()

这是行不通的。我怎样才能正确包装这些 View ?

最佳答案

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

from django.views.decorators.cache import cache_page

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

关于python - 如何为某些 Django Rest Framework View 启用@cache_page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175136/

相关文章:

django - 在 Django 中移动默认路由器的 API 根

Django 休息注册

django - 序列化程序中的关键错误 'request'

python - Scrapy 忽略 noindex

python - 基于FK的Django查询——get all,not any

django - ckeditor bug 以原始 html 格式呈现文本/字符串

django - 将元数据添加到 django rest 框架中的过滤

python - Python纽约时报网络抓取错误(“bytes to string”)

python - 如何将数据类型从整数转换为文本?

python - 绘制多类问题的 ROC 曲线