0

デフォルトの django キャッシュ キー ジェネレーター:

def make_key(key, key_prefix, version):
    return ':'.join([key_prefix, str(version), key])

私は次のように変更したい:

settings.py で

def make_key(key, key_prefix, version):
    return key

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'KEY_FUNCTION' : 'settings.make_key',
        }
}

しかし、djangoは古いネイティブ関数(prefix-version-key)でキーを生成し、どのように変更しますか?

4

1 に答える 1

6

試す:

def make_key(key, key_prefix, version):
    return key

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

ドキュメントには「点線のパスを含む文字列」があることは知っていますが、Djangoのソースコードでは、呼び出し可能なオブジェクト(関数など)を渡すこともできます。

本当に文字列として渡す必要がある場合は、この関数を別のモジュールに移動して、として設定する必要がありyourproject.module.make_keyますKEY_FUNCTION

于 2012-11-05T21:26:53.197 に答える