0

こんにちは、POSTリクエストを介してビューにデータを渡してフォームを処理し、その結果を別のテンプレートに送信するフォームと多くの入力を持つテンプレートを持っています。最後のテンプレートで、ブラウザの戻るボタンを使用して最初のビューにジャンプすると、古いデータが再び表示されます。私はページをリフレッシュし、新しいデータを挿入します、私は再び提出しますが、いくつかの古いデータは、最終的なビューを見るときに残っています。問題は、私がデバッグサーバを再起動しても残っています。どうすればそれを防ぐことができますか?それは私がブラウザキャッシュをフラッシュするだけで解決できるいくつかのデータキャッシングがあるようだ。これはビューコード:http://dpaste.com/640956/と最初のテンプレートコード:http://dpaste.com/640960/django投稿要求のデータキャッシング

どのようなアイデアですか?

TNX - ルーク

+1

すべてこの '__contains__'ようなものは何ですか?あなたが 'イオネオ 'を要求している場合は、それを意味します.POST'。とにかく、Django形式を使うべきです。 –

+0

問題が残っています:私はdanihpのソリューションを試しました。私はmy_appフォルダ内に 'util'フォルダを作成し、投稿されたコードでNoCacheMiddleware.pyファイルを作成します。次に、私はsetting.pyミドルウェアセクションに 'my_app.util.NoCacheMiddleware.NoCacheMiddleware'の文字列を入れました。サーバーの最初のページはエラーなしで読み込まれますが、最初のテンプレートにデータを挿入して送信しようとしても、2番目のテンプレートには古いデータと新しいデータが混在しています。私はまた、基本テンプレートのhtmlの頭にpragma no cacheメタタグを追加しましたが、これは役に立たなかった...私は他のアイデアはありません。任意のスグ –

答えて

0

はフォームを移入誰ジャンゴではありません。キャッシュナビゲータです。キャッシュナビゲータをオフにする必要があります。私はこれを行うには、カスタムミドルウェアを使用します。

from django.http import HttpResponse 

class NoCacheMiddleware(object): 

    def process_response(self, request, response): 
     response['Pragma'] = 'no-cache' 
     response['Cache-Control'] = 'no-cache must-revalidate proxy-revalidate no-store' 
     return response 

はsettings.pyにミドルウェアを追加することを忘れないでください:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'ghap.utils.middleware.NoCacheMiddleware', 
) 
+0

tnx。 render_to_responseでそれを行う方法はありますか?いずれにしても私の場合、あなたのソウルティーンをどのように統合できますか? – Luke

+0

いくつかのアプリでNoCacheMiddlewareというファイルを作成する必要があります。 NoCacheMiddlewareクラスをこのファイルにコピーし、 'path'ファイルをsettyings.pyのMIDDLEWARE_CLASSESに追加します。 – danihp

関連する問題