Yanıtlar:
Metninizle daha karmaşık bir şey yapmak istiyorsanız, kendi filtrenizi oluşturabilir ve html'yi iade etmeden önce biraz sihir yapabilirsiniz. Templatag dosyası şuna benzer:
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)
Ardından bunu şablon dosyanıza ekleyebilirsiniz
<body>
...
{{ title|do_something:content }}
...
</body>
Ve bu size güzel bir sonuç verecektir.
Kodunuzda şu şekilde bir şablon oluşturabilirsiniz:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
Daha fazla bilgi için Django belgelerine bakın .
autoescape
HTML çıkışını kapatmak için şunu kullanın :
{% autoescape off %}{{ message }}{% endautoescape %}
En basit yol safe
filtreyi kullanmaktır :
{{ message|safe }}
Check out güvenli filtre için Django belgelerine daha fazla bilgi için.
Şablonda filtre veya etiket kullanmaya gerek yoktur. Değişkeni html'ye çevirmek için format_html () kullanın ve Django sizin için otomatik olarak kaçışı kapatır.
format_html("<h1>Hello</h1>")
Buradan kontrol edin https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
€
) gibi para birimi işaretleri görüntülemek gerekiyorsa , dolar görünümden geçti bu gitmek için yol.