猿问

将模板变量呈现为HTML

我使用“消息”界面将消息传递给用户,如下所示:


request.user.message_set.create(message=message)

我想在{{ message }}变量中包含html 并呈现它,而不在模板中转义标记。


慕桂英4014372
浏览 771回答 3
3回答

守着星空守着你

如果您想对文本进行更复杂的处理,可以创建自己的过滤器,并在返回html之前做一些魔术。带有一个templatag文件,如下所示:from django import templatefrom django.utils.safestring import mark_saferegister = template.Library()@register.filterdef do_something(title, content):&nbsp; &nbsp; something = '<h1>%s</h1><p>%s</p>' % (title, content)&nbsp; &nbsp; return mark_safe(something)然后,您可以将其添加到模板文件中<body>...&nbsp; &nbsp; {{ title|do_something:content }}...</body>这会给您带来不错的结果。

牧羊人nacy

您可以在代码中呈现模板,如下所示:from django.template import Context, Templatet = Template('This is your <span>{{ message }}</span>.')c = Context({'message': 'Your message'})html = t.render(c)有关更多信息,请参见Django文档。
随时随地看视频慕课网APP
我要回答