2011-09-29 16 views
22

W jaki sposób wyłączyć buforowanie Django przy kasie?Tymczasowe wyłączanie buforowania Django

Wracając do Django 1.3, mógłbym wyłączyć buforowanie dla mojej lokalnej kontroli rozwoju, podając CACHE_BACKEND = None, w settings_local.py zaimportowany przez settings.py. Plik settings_local.py został zignorowany przez SVN, więc zawsze mogłem upewnić się, że moje lokalne środowisko nie buforowało, a jednocześnie nie trzeba się martwić o modyfikowanie parametrów pamięci podręcznej w settings.py.

Teraz z Django 1.3, a nowym buforuje = {...} struktury, ustawienie CACHES = None lub CACHES['default']['BACKEND'] = None powoduje Django się dusić, a ustawienie CACHES = {} wciąż wydaje się włączyć buforowanie podstawowe.

Odpowiedz

7

Używam tego w ustawieniach, więc jest to trochę bardziej elastyczny sprawa i chcę przetestować korzystanie z wdrożonej buforowania (w tym przypadku 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

W tym celu Państwo może używać "obojętnego" zaplecza pamięci podręcznej. Django ma "cnotliwą" pamięć podręczną, która właściwie nie buforuje - implementuje interfejs pamięci podręcznej bez robienia czegokolwiek.

Poniżej przedstawiono formaty konfiguracji old style i new style.

  1. starym stylu

    Aby włączyć buforowanie obojętne, ustaw CACHE_BACKEND tak:

    CACHE_BACKEND = 'dummy://'

  2. nowy styl

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

Rozwiązanie dla wielu skrytek, a chcesz wyłączyć wszystkie z nich:

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

rozwiązanie, jeśli chcesz wyłączyć niektóre bufory, może pomóc:

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