gpt4 book ai didi

django - 如何在新的 Django 消息框架中的消息中输出 HTML?

转载 作者:行者123 更新时间:2023-11-28 19:33:27 26 4
gpt4 key购买 nike

我正在尝试在通过新的 Django 消息框架显示的消息中显示一些 html。具体来说,我是通过 ModelAdmin.message_user 方法执行此操作的,它只是 messages() 的薄包装:

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。

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>"))

admin base.html 模板中模板代码的显示非常简单:

    {% if messages %}
<ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>
{% endif %}

所以我不确定我做错了什么。

非常感谢想法或指导,谢谢!

最佳答案

另一种选择是使用 extra_tags关键字 arg 以指示消息是安全的。例如

messages.error(request, 'Here is a <a href="/">link</a>', extra_tags='safe')

然后使用模板逻辑来使用安全过滤器

{% for message in messages %}
<li class="{{ message.tags }}">
{% if 'safe' in message.tags %}{{ message|safe }}{% else %}{{ message }}{% endif %}
</li>
{% endfor %}

关于django - 如何在新的 Django 消息框架中的消息中输出 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2053258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com