Django:如何动态设置视图缓存超时值?

时间:2013-12-31 01:10:57

标签: django

在视图本身中,我希望能够在返回结果时设置缓存超时值。原因是如果视图返回错误,我希望超时更短。

现在,我将超时设置为静态:

url(r'^view/(.+)/', cache_page(24 * 60 * 60)(MyView.as_view()), name='view')

1 个答案:

答案 0 :(得分:1)

您可以在视图类中手动执行此操作。类似的东西:

class MyView(View):
    def get(self, *args, **kwargs):
        response_data = cache.get('some_key')
        if response_data is None:
            response = super(MyView, self).get(*args, **kwargs)
            cache.set('some_key', response.content, 300)
        else:
            response = HttpResponse(response_data)
        return response