Le rendu d'une variable de modèle au format HTML
- Je utiliser les "messages" de l'interface pour passer des messages à l'utilisateur comme ceci:
request.user.message_set.create(message=message)
Je voudrais inclure du html dans mon {{ message }}
variable et le rendre sans échapper à la majoration dans le modèle.
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas le code HTML pour être échappé, regardez la
safe
filtre et leautoescape
tag:sûr
:autoescape
:€
), le dollar passé de vue c'est le chemin à parcourir.autoescape off
et pason
. J'ai fait cette erreur et a découvert que plus tard.Si vous voulez faire quelque chose de plus compliqué avec votre texte, vous pouvez créer vos propres filtres et faire un peu de magie avant de retourner le code html.
Avec un templatag fichier comme ceci:
Ensuite, vous pouvez ajouter ceci dans votre fichier de modèle
Et ce serait vous donner un beau résultat.
Utiliser le
autoescape
à tourner HTML échapper off:Vous pouvez rendre un template dans votre code comme suit:
Voir le Django docs pour de plus amples informations.
La façon la plus simple est d'utiliser le
safe
filtre:Découvrez la Documentation de Django pour la sécurité du filtre pour plus d'informations.
Pas besoin d'utiliser le filtre ou l'étiquette dans le modèle.
Utilisez simplement format_html() pour traduire la variable html et Django se mettra automatiquement en fuite pour vous variable.
Découvrez ici https://docs.djangoproject.com/en/1.9/ref/utils/