Message d'erreur ou informatif dans le HTML avec Django

Active 16 juillet 2014    /    Viewed 1629    /    Comments 0    /    Edit


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:

Figure 1: Message d'erreur ou informatif dans le HTML avec Django (1/2)

Figure 2: Message d'erreur ou informatif dans le HTML avec Django (1/2)

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


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!