【问题标题】:Django low-level cache API not workingDjango 低级缓存 API 不起作用
【发布时间】:2011-12-19 08:45:27
【问题描述】:

我正在尝试使用低级缓存 API 缓存 request.POST dict,但它似乎无法正常工作。我得到的不是缓存的字典,而是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有问题?

【问题讨论】:

  • 您的交互模式示例是正确的,cache.set 不返回任何内容 (None)。在交互模式下尝试cache.get
  • 谢谢,它的作品。我正在删除问题的错误方面。

标签: django django-settings django-cache


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 2011-09-26
    • 1970-01-01
    • 2018-04-04
    • 2019-07-13
    • 1970-01-01
    • 2016-06-23
    • 2017-10-08
    相关资源
    最近更新 更多