Answer a question

How do you disable Django caching on a per checkout basis?

Back before Django 1.3, I could disable caching for my local development checkout by specifying CACHE_BACKEND = None, in a settings_local.py imported by settings.py. The settings_local.py was ignored by SVN, so I could always ensure my local environment didn't cache, while not have to worry about modifying the cache params in settings.py.

Now, with Django 1.3, and the new CACHES = {...} structure, setting CACHES = None or CACHES['default']['BACKEND'] = None causes Django to choke, and setting CACHES = {} still seems to enable basic caching.

Answers

Dummy Caching (for development) - this implements the cache interface, but doesn't actually cache so you could have it on your development/testing site to reduce caching and also prevent errors from caching, if those should arise.

Finally, Django comes with a "dummy" cache that doesn't actually cache – it just implements the cache interface without doing anything.

This is useful if you have a production site that uses heavy-duty caching in various places but a development/test environment where you don’t want to cache and don’t want to have to change your code to special-case the latter. To activate dummy caching, set BACKEND like so:

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

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐