2

1 つの django プロジェクトで複数のキャッシング エンジンを使用したいと考えています。例では、モデル画像のサムネイルを取得/設定するために多くのSQLクエリを生成するsorl.thumbnailを使用しています。このクエリをキャッシュするために、memcached バックエンドを使用します。しかし、他のキャッシュは機能しなくなりました。つまり、 を使用したテンプレート キャッシングと{% 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 バックエンドを使用し、特にツリー (django-mptt) を使用して多くのクエリを生成するためです。

4

1 に答える 1

4

APIを介してこれを行うことができます:

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

残念ながら、テンプレート キャッシュには、デフォルト以外のものを使用する方法がありません。これを行いたい場合は、おそらく自分で作成する必要があります。

于 2011-10-31T11:42:45.727 に答える