Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python/Django中定义除设置缓存超时之外的另一个缓存控件_Python_Django_Django Views_Django Cache - Fatal编程技术网

在Python/Django中定义除设置缓存超时之外的另一个缓存控件

在Python/Django中定义除设置缓存超时之外的另一个缓存控件,python,django,django-views,django-cache,Python,Django,Django Views,Django Cache,我希望缓存我的视图,如下所示: @cache_page(10) def myview: return HttpResponse('content') 这会自动缓存我的视图10秒,并自动设置缓存控制/过期标头。我只想缓存我的视图10秒,但最长时间为3600秒 例如,可以这样尝试: @cache_page(10) def myview: response = HttpResponse('content') patch_response_headers(response, 3

我希望缓存我的视图,如下所示:

@cache_page(10)
def myview:
    return HttpResponse('content')
这会自动缓存我的视图10秒,并自动设置缓存控制/过期标头。我只想缓存我的视图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'
或者这样:

@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视图中指定其中一个视图时,它会将视图缓存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

非常感谢

霍尔格