Risposte:
Se vuoi fare qualcosa di più complicato con il tuo testo, puoi creare il tuo filtro e fare un po 'di magia prima di restituire l'html. Con un file templatag simile a questo:
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)
Quindi è possibile aggiungere questo nel file modello
<body>
...
{{ title|do_something:content }}
...
</body>
E questo ti darebbe un buon risultato.
Puoi rendere un modello nel tuo codice in questo modo:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
Vedi i documenti Django per ulteriori informazioni.
Usa il autoescape
per disattivare l'escaping HTML:
{% autoescape off %}{{ message }}{% endautoescape %}
Il modo più semplice è utilizzare il safe
filtro:
{{ message|safe }}
Controlla la documentazione di Django per il filtro sicuro per ulteriori informazioni.
Non è necessario utilizzare il filtro o il tag nel modello. Basta usare format_html () per tradurre la variabile in html e Django disattiverà automaticamente la fuga per la tua variabile.
format_html("<h1>Hello</h1>")
Dai un'occhiata qui https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
€
), il dollaro passato dalla vista è la strada da percorrere.