Réponses:
Si vous voulez faire quelque chose de plus compliqué avec votre texte, vous pouvez créer votre propre filtre et faire de la magie avant de renvoyer le html. Avec un fichier templatag ressemblant à ceci:
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def do_something(title, content):
something = '<h1>%s</h1><p>%s</p>' % (title, content)
return mark_safe(something)
Ensuite, vous pouvez l'ajouter dans votre fichier de modèle
<body>
...
{{ title|do_something:content }}
...
</body>
Et cela vous donnerait un beau résultat.
Vous pouvez rendre un modèle dans votre code comme ceci:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
Consultez la documentation Django pour plus d'informations.
Utilisez autoescape
pour désactiver l'échappement HTML:
{% autoescape off %}{{ message }}{% endautoescape %}
Le moyen le plus simple est d'utiliser le safe
filtre:
{{ message|safe }}
Consultez la documentation Django pour le filtre sécurisé pour plus d'informations.
Pas besoin d'utiliser le filtre ou la balise dans le modèle. Utilisez simplement format_html () pour traduire la variable en html et Django désactivera automatiquement l'échappement pour votre variable.
format_html("<h1>Hello</h1>")
Découvrez ici https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
€
), le dollar passé de la vue, c'est la voie à suivre.