0

我正在尝试request.POST使用低级缓存 API 缓存字典,但它似乎不起作用。我得到的不是缓存的字典,而是None值。

这是我尝试过的:

print cache.get('forms_data') # It is None
education_formset = Education(
    request.POST or cache.get('forms_data') or None, prefix='education')

if education_formset.is_valid():
    if 'view' in request.POST:
        cache.set('forms_data', request.POST, 600)

设置:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'unix:/tmp/memcached.sock',
    }
}

运行代码时没有异常。

设置或unix有问题memcached.sock吗?

4

1 回答 1

0

正如 DrTyrsa 在评论中指出的那样,cache.set返回 None。

但是,我无法弄清楚您在这里想要达到的目标。缓存是全局的:它对您网站的所有用户都是一样的。您在这里所做的是缓存一个用户的 POST 值,然后为所有其他用户检索它们。我非常怀疑这就是你的意图。

如果要存储用户的提交,请将它们保存在会话中。

于 2011-11-01T09:51:28.050 回答