我用的是「消息」界面將消息傳遞給用戶這樣的:渲染一個模板變量作爲HTML
request.user.message_set.create(message=message)
我想包括我{{ message }}
變量html和渲染它沒有在避開標記模板。
我用的是「消息」界面將消息傳遞給用戶這樣的:渲染一個模板變量作爲HTML
request.user.message_set.create(message=message)
我想包括我{{ message }}
變量html和渲染它沒有在避開標記模板。
如果你想dont't HTML逃了出來,看safe
過濾器和標籤autoescape
FILTER:{{ myhtml |safe }}
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe
TAG:{% autoescape off %}{{ myhtml }}{% endautoescape %}
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#autoescape
你可以在你的代碼呈現一個模板,像這樣:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
進一步信息,請參見Django docs。
我覺得我得到了棍子的錯誤結束了,但我離開了答案現在。 –
使用autoescape
打開HTML轉關:
{% autoescape off %}{{ message }}{% endautoescape %}
如果你想對文本做更復雜的事情,你可以創建自己的過濾器並在返回html之前做一些魔術。 隨着templatag文件看起來像這樣:
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)
然後,你可以在你的模板文件
<body>
...
{{ title|do_something:content }}
...
</body>
添加這和這會給你一個不錯的結果。
無需使用模板中的過濾器或標籤。 只需使用format_html()將變量轉換爲html,Django就會自動將您的變量關閉。
format_html("<h1>Hello</h1>")
WOW。 40秒內4回答 –
如果您需要顯示例如歐元等貨幣符號('€'),則美元從視圖中移除,這是要走的路。 – andi