1

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',
         }
     }
4

1 に答える 1

0

これを試して。django-nonrelを使用していますが、これが通常のdjangoでは機能しないことを示すコードが表示されません(間違っている可能性があります)

SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    }
}
于 2012-12-21T17:06:45.580 に答える