Câu trả lời:
Nếu bạn muốn làm một cái gì đó phức tạp hơn với văn bản của mình, bạn có thể tạo bộ lọc của riêng mình và thực hiện một số phép thuật trước khi trả lại html. Với một tệp templatag trông như thế này:
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)
Sau đó, bạn có thể thêm điều này trong tệp mẫu của bạn
<body>
...
{{ title|do_something:content }}
...
</body>
Và điều này sẽ cho bạn một kết quả tốt đẹp.
Sử dụng autoescape
để tắt HTML thoát:
{% autoescape off %}{{ message }}{% endautoescape %}
Bạn có thể kết xuất một mẫu trong mã của mình như vậy:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
Xem tài liệu Django để biết thêm thông tin.
Cách đơn giản nhất là sử dụng safe
bộ lọc:
{{ message|safe }}
Kiểm tra tài liệu Django cho bộ lọc an toàn để biết thêm thông tin.
Không cần sử dụng bộ lọc hoặc thẻ trong mẫu. Chỉ cần sử dụng format_html () để dịch biến sang html và Django sẽ tự động tắt biến cho bạn biến.
format_html("<h1>Hello</h1>")
Kiểm tra tại đây https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
€
), đồng đô la được chuyển từ chế độ xem thì đây là cách để đi.