2010-06-09 6 views
4

Mon code dans la vue:un message Django n'expire pas

from django.contrib import messages 
    messages.add_message(request, messages.INFO, 'Hello world.') 

Je ne veux pas montrer ce code à l'utilisateur la deuxième fois s'il/elle rafraîchit à nouveau. Comment vais-je faire cela? Les messages ne semblent pas avoir de paramètre d'expiration. Il y a des documents ici:

http://docs.djangoproject.com/en/1.2/ref/contrib/messages/#expiration-of-messages

+0

Quel code utilisez-vous pour afficher les messages? Ils devraient expirer par défaut. –

Répondre

5

Les messages sont effacés dès que vous itérer messages (qui devraient être disponibles à partir RequestContext).

Alors la première étape consiste à s'assurer que vous affichez des messages! Si vous voulez rester sur l'affichage des messages pour une certaine page, vous voudrez peut-être enquêter sur les choses de poinçonnage dans la session, mais il devient un peu brouillon à mon goût. Je ne peux pas penser à de bonnes raisons de retarder le message pour la prochaine pageload.

Si vous les affichez et que vos messages sont suspendus plus longtemps que prévu, vous les ajoutez peut-être de nouveau après leur affichage. Essayez de mettre des horodatages dans vos messages et vous verrez si ils ont été écrits.

+0

Cela a du sens. Alors peut-être, à mon avis, je devrais stocker une variable de session pour les utilisateurs débutants sur une page et ajouter le message seulement si l'utilisateur a chargé la page pour la première fois. Dans ce scénario, l'utilisateur ne voit pas le message lorsque la page est actualisée. Corrigez-moi s'il y a un meilleur moyen! Merci. – ninja123

+0

Qu'en est-il du paramètre d'expiration? avez-vous le faire fonctionner. J'ai essayé de le définir comme faux mais ne fonctionne pas. –

Questions connexes