2012-11-05 376 views
0

Django缺省的緩存鍵生成:Django的memcahed密鑰生成

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的產生與舊機功能鍵(前綴版本鍵)如何改變它?

回答

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的source code看到,你也可以通過調用對象(如函數)。

如果確實需要將它作爲字符串傳遞,則應將此函數移至另一個模塊並將yourproject.module.make_key設置爲KEY_FUNCTION

+0

可召回作品thanx – user1624522

+1

謝謝 - docs是真的誤導 – Esteban