【发布时间】:2017-04-25 13:26:02
【问题描述】:
在我看来,我经常使用APIView的as_view()来生成json。
我想缓存响应并尝试了以下方法,但它不起作用
def some_complex_view(self, request, *args, **kwargs):
pass
@method_decorator(cache_page(60, key_prefix='drf'))
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
然后,我打电话给
def my_view(request, *args, **kwargs):
json_data = MyViewSet.as_view({'get': 'some_complex_view'})(request, format='json')
data = {
'my_data': json_data
}
return render(request, 'my_template.html', data)
当我使用浏览器请求视图时它会正确缓存,但使用as_view()时不会缓存
【问题讨论】:
-
直接调用视图时如何构造请求?
-
你的 django 版本是多少??
-
@knbk:我在 django 视图函数中,它有“请求”
-
@SathishKumarVG 我用的是 1.9,如果需要愿意升级。
-
我不完全确定你的意思,你能显示代码吗?
标签: django django-rest-framework django-cache