Très rarement, un Django message est affiché dans un HTML
de réponse. Ensuite, l'utilisateur GET
s une autre page, et le Django message est affiché de nouveau. Parfois, l'utilisateur GET
une autre page par la suite, et le même message s'affiche de nouveau.
Cela arrive très rarement, mais lorsqu'il le fait, la plupart des utilisateurs de voir le même comportement que pour quelques instants. (C'est arrivé une fois dans un groupe de la croix-navigateur de test, et tout le monde dans la salle a vu le même comportement sur chacun de leurs ordinateurs pendant environ cinq minutes avant d'aller plus loin.)
Ce comportement s'est produit avec de nombreux points de vue différents; et, de plus, chaque point de vue, ajoute la même manière (voir ci-dessous).
J'ai été incapable de reproduire de manière fiable l'erreur, que ce soit dans notre environnement déployé (exécutant wsgi.py
) ou lors de l'exécution du projet sur l'environnement local (exécutant manage.py
). (Je note que je n'ai jamais vu ce problème sur place.)
Quelqu'un aurait-il une idée de quoi cela peut-il se passer?
Exemple d'un message de succès en cours d'ajout.
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))
)
C'est le modèle de code qui rend le message:
<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>
Les paramètres pertinents:
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',
...}}