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 使用旧的本机功能生成密钥(前缀版本密钥)如何更改它?

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_keyKEY_FUNCTION.

于 2012-11-05T21:26:53.197 回答