2011-09-29 19 views
22

¿Cómo se desactiva el almacenamiento en caché de Django por pago y envío?Deshabilitar temporalmente el almacenamiento en caché de Django

Antes de Django 1.3, podría desactivar el almacenamiento en caché para mi pago de desarrollo local especificando CACHE_BACKEND = None, en un settings_local.py importado por settings.py. El SVN ignoró el archivo settings_local.py, así que siempre pude asegurar que mi entorno local no guardaba en caché, sin tener que preocuparme por modificar los parámetros de caché en settings.py.

Ahora, con Django 1.3, y la nueva caja = {...} estructura, configurando CACHES = None o CACHES['default']['BACKEND'] = None hace que Django se ahogue, y el establecimiento de CACHES = {} todavía parece activar la caché básica.

Respuesta

7

yo uso esto en mi configuración, por lo que es un caso i más flexible poco yo quiero poner a prueba el uso del almacenamiento en caché desplegado (en este caso Memcache)

TEST_MEMCACHE = False 
if not DEBUG or TEST_MEMCACHE: 
    CACHES = { 
     'default': { 
     'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
     'LOCATION': '127.0.0.1:11211', 
     } 
    } 
else: 
    CACHES = { 
     'default': { 
      'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 
     } 
} 
2

Para ello se puede usar back-end de caché "ficticio". Django viene con un caché "ficticio" que en realidad no guarda en caché, simplemente implementa la interfaz de caché sin hacer nada.

Aquí están los formatos de configuración old style y new style.

  1. estilo antiguo

    Para activar el almacenamiento en caché simulado, establecer CACHE_BACKEND así:

    CACHE_BACKEND = 'dummy://'

  2. nuevo estilo

    CACHES = { 
        'default': { 
         'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 
        } 
    } 
    
3

Solución de múltiples cachés, y desea desactivar todos ellos:

if True: 
    CACHES = { 
     k : {'BACKEND': 'django.core.cache.backends.dummy.DummyCache',} 
     for k,v in CACHES.iteritems() 
    } 

solución si desea desactivar algunos cachés, puede ayudar a:

if True: 
    disable_names = [ 'cache_name' ] 
    for name in disable_names: 
     CACHES[name] = {'BACKEND' : 'django.core.cache.backends.dummy.DummyCache',} 
Cuestiones relacionadas