Estoy usando el acceso directo render_to_response y no quiero crear un objeto Response específico para agregar encabezados adicionales para evitar el almacenamiento en caché del lado del cliente.Combatir el almacenamiento en caché del lado del cliente en Django
Me gustaría tener una respuesta que contiene:
- Pragma: no-cache
- Cache-Control: no-cache
- Cache-Control: hay que revalidar
Y todas las otras formas ingeniosas que los navegadores interpretarán como directivas para evitar el almacenamiento en caché.
¿Hay algún middleware sin caché o algo similar que pueda solucionar el problema con una mínima intrusión de código?
Para que esto funcione en todos los navegadores (en concreto Firefox y Opera, que funcionaba bien en IE y Safari/Chrome) que necesitaba para añadir manualmente 'respuesta [" Caché -Control "] =" no-cache, no-store, must-revalidate "' junto con '@ never_cache'. '@ never_cache' llama a' add_never_cache_headers() 'y esto a su vez llama a' patch_cache_control() 'pero esto solo agrega' Cache-Control: max-age = 0', que aparentemente no es suficiente para estos navegadores. Ver http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers – AJJ
Después de explorar el código django un poco más, encontré una forma más clara de agregar ese encabezado: 'patch_cache_control (response, no_cache = True, no_store = True, must_revalidate = True)' – AJJ
Ah, ya hay un ticket abierto para esto en code.djangoproject.com: [@never_cache decorator debería agregar 'no-cache '&' debe-revalidar '] (https://code.djangoproject.com/ticket/13008) – AJJ