ごくまれに、DjangoHTML
メッセージが応答でレンダリングされます。次に、ユーザーGET
が別のページに移動すると、Django メッセージが再びレンダリングされます。その後、ユーザーがGET
別のページに移動すると、同じメッセージが再度表示されることがあります。
これはめったに発生しませんが、発生した場合、ほとんどのユーザーは同じ動作をしばらく見ます。(これはグループ クロス ブラウザー テストで 1 回発生し、部屋にいた全員がそれぞれのコンピューターで同じ動作を約 5 分間見た後、立ち去りました。)
この動作は、さまざまなビューで発生しています。さらに、各ビューは同じ方法でそれらを追加します (以下を参照)。
デプロイされた環境 (実行中wsgi.py
) またはローカル環境でプロジェクトを実行中(実行中) のいずれかで、エラーを確実に再現できませんでしたmanage.py
。(この問題をローカルで見たことがないことに注意してください。)
なぜこれが起こっているのか誰にも分かりますか?
追加された成功メッセージの例。
messages.success(
request,
"Changes to {form} {request} were successfully saved."\
.format(form=self.form.display_name,
request=serv_request_id_as_url(self.serv_request))
)
これは、メッセージをレンダリングするテンプレート コードです。
<div id="messages">
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
<a class="close" data-dismiss="alert" href="#" title="Close"><span class="accessibility">Close this message.</span>×</a>
<strong>{{ message.message|safe }}</strong>
</div>
{% endfor %}
</div>
関連する設定:
MIDDLEWARE_CLASSES = (
'django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'outage.middleware.OutageMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'utdirect.middleware.HttpHeaderMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', ... )
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
DATABASES = {'default': {'ENGINE': 'django.db.backends.oracle',
...}}