Avec Django il est possible de mettre automatiquement des messagesd'erreurs/informatifs dans le template html. Considérons un exemple simple: on souhaite mettre un message dans le html si quelque chose ne s'est pas bien passé en voulant afficher la page. Pour cela, dans le fichier views.py il suffit d'ajouter, au minimum, les quelques lignes suivantes:
from django.contrib import messages
def MyView(request):
messages.add_message(request, messages.INFO, 'Sorry, something went wrong !')
return render_to_response("MyApp/MyTemplate.html", context_instance=RequestContext(request))
Puis dans le template html (ici intitulé MyTemplate.html):
<!DOCTYPE html>
<html>
<body>
{% if messages %}
{% for message in messages %}
{{ message }} <br>
{% endfor %}
{% endif %}
</body>
</html>
Ce qui va donner comme résultat quelque chose ressemblant à la figure 1. On peut aussi ajouter d'autres messages comme ceci (figure 2):
from django.contrib import messages
def MyView(request):
messages.add_message(request, messages.INFO, 'Sorry, something went wrong !')
messages.add_message(request, messages.INFO, 'Sorry, something went wrong again !')
messages.add_message(request, messages.INFO, 'Sorry, something went wrong again !!!!')
return render_to_response("MyApp/MyTemplate.html", context_instance=RequestContext(request))
Recherches associées
Liens | Site |
---|---|
The messages framework | Django Doc |
How do I output HTML in a message in the new Django messages framework? | stackoverflow |
Private messaging in Django | stackoverflow |
How to make django messages StackOverflow style? | stackoverflow |
Django messages framwork usage | stackoverflow |
django messages not showing | stackoverflow |
Displaying Django Messages Framework Messages | stackoverflow |