1

我正在开发一个使用Django框架编写并在GAE实例上运行的项目。它还使用 Googlememcache作为默认缓存后端。这个项目是使用 Django 1.3 开发的,并且运行良好。但是最近我们尝试在 Django 1.4 上运行我们的项目并遇到了一个奇怪的异常:argument of type 'Client' is not iterable.

此异常的原因在于此提交。以下是自 Django 1.3 以来添加的两行代码:

    if (KEY_PREFIX + session_key) in cache:
        return True

这些行假设cache对象是可迭代的。缓存对象本身是google.appengine.api.memcache.Client项目的settings.py. 这个类确实不提供可迭代的接口。

所以我的问题是:(如果是的话)memcache应该如何使用Django 1.4

UPD。这是我们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 回答