Utilizzo la scorciatoia render_to_response e non desidero creare un oggetto Response specifico per aggiungere intestazioni aggiuntive per impedire la memorizzazione nella cache sul lato client.Combattere la cache sul lato client in Django
Mi piacerebbe avere una risposta che contiene:
- Pragma: no-cache
- Cache-Control: no-cache
- Cache-control: must-revalidate
E tutti gli altri modi ingegnosi che i browser potrebbero interpretare come direttive per evitare il caching.
C'è un middleware senza cache o qualcosa di simile che può fare il trucco con un'intrusione di codice minima?
per fare questo lavoro su tutti i browser (in particolare Firefox e Opera, ha funzionato bene su IE e Safari/Chrome) avevo bisogno di aggiungere manualmente 'risposta [" Cache -Control "] =" no-cache, no-store, must-revalidate "' insieme a '@ never_cache'. '@ never_cache' chiama' add_never_cache_headers() 'e questo a sua volta chiama' patch_cache_control() 'ma questo aggiunge solo' Cache-Control: max-age = 0', che a quanto pare non è abbastanza per questi browser. Vedi http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers – AJJ
Dopo aver esplorato il codice django un po 'di più ho trovato un modo più pulito di aggiungere quell'intestazione: 'patch_cache_control (risposta, no_cache = True, no_store = True, must_revalidate = True)' – AJJ
Ah, c'è già un ticket aperto per questo a code.djopoproject.com: [@never_cache decorator dovrebbe aggiungere 'no-cache '&' must-revalidate '] (https://code.djangoproject.com/ticket/13008) – AJJ