Django несколько кешей - PullRequest
       20

Django несколько кешей

2 голосов
/ 12 сентября 2011

Я хочу использовать несколько движков кэширования в одном проекте django. В примере я использую sorl.thumbnail, который сгенерировал много запросов sql, чтобы получить / установить эскиз для изображения модели. Для кеширования этих запросов я использую memcached backend. Но другие кеши перестали работать, я имею в виду кэширование шаблонов с {% cache ... %}, а также через API cache.get (), cache.set (). Я хочу быть примерно таким

CACHES = {
'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': '127.0.0.1:11211',
    },
'filebased': {
    'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',

    }

}

Как я могу использовать файловый кеш в шаблоне? Потому что {% cache%} использует memcached backend и выдает много запросов, особенно с использованием деревьев (django-mptt)

1 Ответ

4 голосов
/ 31 октября 2011

С помощью API вы можете сделать это:

from django.core import cache
filebased_cache = cache.get_cache('filebased')
filebased_cache.set('blah', 1)

Боюсь, что кеш шаблонов не позволяет использовать другой способ, отличный от используемого по умолчанию.Вы, вероятно, должны написать свой собственный, если вы хотите сделать это.

...