サイト検索に使用するフォームを含むページがあります。フォームは POST 動詞を使用して、検索するデータを送信します。検索結果は、送信後にフォームの下に表示されます。
IE の「ページの有効期限が切れています」という問題を解決するために、いわゆる PRG パターン (http://en.wikipedia.org/wiki/Post/Redirect/Get) を使用します。したがって、同じ URL にリダイレクトするビューの post() メソッドから django.shortcuts.redirect() を返します。
問題は、本番環境では、302 応答の後に送信された GET 要求に関連付けられた異なるセッション ID が表示されることです。結果をページに分割できるようにフォームをセッションに保存するため、一貫性のない結果が得られます。
apache/mod_wsgi で django を実行しています。apache は最大 3 つのプロセスを実行するように構成されています。
httpd を再起動した直後には発生せず、httpd プロセスによって消費されるメモリ量が制限に達した後に発生し始めるようです。
送信ボタンを繰り返し押してこれを確認すると、セッションからフォームが取り込まれ、入力した検索文字列を確認できます。セッションが変更されると、フォームは空白に戻ります。そのため、これが発生し始めると、フォームは 2 回続けて正常に入力され、3 回目に送信を押すと空白が返されます。これは、サーバーが新しいセッション Cookie を返したことを意味します。これは ServerLimit 設定と関係があるようです。
なにが問題ですか?何か案は?
ありがとう
コンスタンチン