我无法弄清楚这一点,并且在谷歌搜索后找不到解决方案。我正在为我的 Django 应用程序实现缓存。
我采取的步骤是:
brew install libmemcache,它也安装了 memcache
点安装 pylibmc
pip install -e hg+https://jmoiron@bitbucket.org/jmoiron/johnny-cache,安装没有错误。
将此添加到我的 settings.py
CACHES = { 'default': { 'BACKEND': 'johnny.backends.memcached.PyLibMCCache', 'LOCATION': ['127.0.0.1:11211'], 'JOHNNY_CACHE': True, } } JOHNNY_MIDDLEWARE_KEY_PREFIX = 'product' MIDDLEWARE_CLASSES = ( 'johnny.middleware.LocalStoreClearMiddleware', 'johnny.middleware.QueryCacheMiddleware', ... }
现在,每当我浏览时,在控制台中我都可以看到存储在 memcache 中的东西,但是一旦 memcached get 出现,Caught TypeError while rendering: cannot concatenate 'str' and 'tuple' objects
就会被抛出。不管正在运行什么命令,错误都在/env/pfenv/lib/python2.7/site-packages/django/db/backends/mysql/compiler.py in resolve_columns, line 12
.
还有另一个关于此的 SO 问题,但选择的答案是仅使用项目的不同分支,该分支尚未更新,其更改实际上几乎立即合并到主存储桶中。pypi 版本(我也尝试过)来自他们声称破坏了事情的提交之前,并且那个版本给了我同样的错误。这个项目每两周左右更新一次,我想从他们发布的其他错误修复中受益。
这应该很容易实现,我在这里做错了什么?
更新
提交了一个错误报告,其中还包括堆栈跟踪,以防万一这不是我做过的事情。
更新 2
实际上回去刷新了缓存,关闭了 johnny-cache,并尝试了使用 pylibmc 的 vanilla django 缓存设置。不工作,每一页都出现同样的错误。用 python-memcache 尝试过,同样的事情。不知道在这里寻找什么。完全关闭缓存,该网站工作得很好。有点需要缓存。
更新 3
显然,这个相同的来源由一位同事检查并以相同的方式安装。我不知道有什么区别或者还有什么可以解决的。有什么建议么?