私はこれを理解することができず、グーグルで調べた後、解決策を見つけることができませんでした。Djangoアプリにキャッシュを実装しています。
私が取った手順は次のとおりです。
brew install libmemcache、これはmemcacheもインストールしました
pip install 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に保存されているものを確認できますが、memcachedgetが起動するとすぐに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
ます。
これについてもう1つSOの質問がありますが、選択された答えは、プロジェクトの別のフォークを使用することです。このフォークは更新されておらず、変更はほとんどすぐにマスターバケットにマージされます。pypiバージョン(私も試しました)は、コミット前のもので、壊れたと主張していますが、同じエラーが発生します。このプロジェクトは約2週間ごとに更新され、リリースされた他のバグ修正を利用したいと思います。
これは実装が非常に簡単なはずですが、ここで何が間違っているのでしょうか。
アップデート
これが私がやったことではない場合に備えて、スタックトレースも含むバグレポートを提出しました。
アップデート2
実際に戻ってキャッシュをフラッシュし、johnny-cacheをオフにして、pylibmcでバニラのdjangoキャッシュ設定だけを試しました。動作しません。すべてのページで同じエラーが発生します。同じことをpython-memcacheで試してみました。ここで何を探すべきかわからない。キャッシュを完全にオフにすると、サイトは正常に機能します。ちょっとキャッシングが必要です。
アップデート3
どうやら、この同じソースが同僚によってチェックアウトされ、同じ方法でインストールされたようです。違いが何であるか、またはトラブルシューティングするために他に何をすべきかわかりません。助言がありますか?