在Python / Django中定义另一个Cache-Control,而不是设置缓存超时

时间:2012-09-17 19:13:15

标签: python django django-views django-cache

我想将我的观点缓存如下:

@cache_page(10)
def myview:
    return HttpResponse('content')

这会自动缓存我的视图10秒钟,并自动设置Cache-Control / Expire标头。我想缓存我的视图只有10秒,但最大年龄为3600秒。

以这种方式尝试:

@cache_page(10)
def myview:
    response = HttpResponse('content')
    patch_response_headers(response, 3600)

或者这样:

@cache_page(10)
def myview:
    response = HttpResponse('content')
    response['Cache-Control'] = 'max-age=3600'

但是当我在Django-View中指定其中一个时,它会将视图缓存3600秒而不是10秒。还尝试了像'cache_control'这样的装饰器,但没有任何帮助。

这个问题有解决方案吗?我正在使用Django 1.4.1。

不知道它是否相关,我的激活的中间件类是

  • django.middleware.common.CommonMiddleware
  • django.contrib.sessions.middleware.SessionMiddleware
  • django.middleware.csrf.CsrfViewMiddleware
  • django.contrib.auth.middleware.AuthenticationMiddleware
  • django.contrib.messages.middleware.MessageMiddleware
  • django.middleware.http.ConditionalGetMiddleware

我已激活ConditionalGetMiddleware以确保根据最后修改的标头发送304。

非常感谢!

霍尔格

0 个答案:

没有答案