Djangoフレームワークを使用して作成され、インスタンスで実行されるプロジェクトに取り組んでいGAEます。またmemcache、デフォルトのキャッシュ バックエンドとして Google を使用します。このプロジェクトは Django 1.3 を使用して開発され、うまく動作します。しかし最近、Django 1.4 でプロジェクトを実行しようとしたところ、奇妙な例外が発生しました: argument of type 'Client' is not iterable.
この例外の理由は、このコミットにあります。Django 1.3 以降に追加された 2 行を次に示します。
if (KEY_PREFIX + session_key) in cache:
return True
cacheこれらの行は、オブジェクトが反復可能であることを前提としています。キャッシュ オブジェクト自体は、google.appengine.api.memcache.Clientプロジェクトの で指定されているクラスのインスタンスですsettings.py。実際、このクラスは反復可能なインターフェースを提供しません。
だから私の質問:(もしそうなら)どのようmemcacheに動作するはずDjango 1.4ですか?
アップデート。settings.pyこれは、質問に関連する私たちの断片です。
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
CACHES = {
'default': {
'BACKEND': 'google.appengine.api.memcache.Client',
}
}