我想显示一个消息,通过新的Django消息框架显示一点的HTML。如何在新的Django消息框架中的消息中输出HTML?
def message_user(self, request, message):
"""
Send a message to the user. The default implementation
posts a message using the django.contrib.messages backend.
"""
messages.info(request, message)
一切到目前为止,我已经试过似乎显示转义的HTML:具体来说,我通过ModelAdmin.message_user方法,这仅仅是围绕消息的薄包装()这样做。
self.message_user(request, "<a href=\"http://www.google.com\">Here's google!</a>")
不工作,也不:
from django.utils.safestring import mark_safe
...
self.message_user(request, mark_safe("<a href=\"http://www.google.com\">Here's google!</a>"))
在管理base.html文件模板模板代码的显示是非常简单的:
{% if messages %}
<ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>
{% endif %}
所以我不完全确定我做错了什么。
想法或指导非常感谢,谢谢!
{{消息|安全}}确实工作;但是,这是一个内置的管理员基础模板,所以编辑它并不那么简单(另外我不一定要将每条消息标记为安全的)。 我很确定问题在于,因为这是在请求周期内保存(并在下一个显示),任何企图将其标记为安全的尝试都是徒劳的。 – jsdalton 2010-01-12 23:48:40
问题:当你把它放在队列中时,你可以标记消息“安全”吗?我没有看,但这是我第一件事。 – 2010-01-13 01:42:48
@Peter - 试过(通过mark_safe在我的问题中的代码示例),但没有运气。从我所知道的情况来看,当消息被实际显示时(在下面的请求中),这并没有被保留。 – jsdalton 2010-01-13 13:29:41