0

低レベルのキャッシュ API を使用して dict をキャッシュしようとしてrequest.POSTいますが、機能していないようです。キャッシュされた辞書の代わりにNone値を取得します。

これが私が試したことです:

print cache.get('forms_data') # It is None
education_formset = Education(
    request.POST or cache.get('forms_data') or None, prefix='education')

if education_formset.is_valid():
    if 'view' in request.POST:
        cache.set('forms_data', request.POST, 600)

設定:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'unix:/tmp/memcached.sock',
    }
}

コードの実行時に例外はありませんでした。

設定や unix に何か問題があるのmemcached.sockでしょうか?

4

1 に答える 1

0

DrTyrsa がコメントで指摘しているように、cache.setNone を返します。

ただし、ここで何を達成しようとしているのかわかりません。キャッシュはグローバルです。サイトのすべてのユーザーに共通です。ここで行っているのは、1 人のユーザーの POST 値をキャッシュしてから、他のすべてのユーザーのためにそれらを取得することです。それがあなたの意図するものであるとはとても思えません。

ユーザーの送信を保存する場合は、それらをセッションに保持します。

于 2011-11-01T09:51:28.050 に答える