我想在一些方面改进我的django message
:在文本中添加breakline
,并使用django reverse url
添加网址。
这是我的信息:
messages.error(self.request, _( f"The link to download the document has expired. Please request it again in our catalogue : {redirect to freepub-home}"
我想通过在.
之后添加新行来分隔消息,以获得类似这样的内容:
messages.error(self.request, _( f"The link to download the document has expired.
Please request it again in our catalogue : {redirect to freepub-home}"
然后,由于反向"freepub-home"
的URL,如何在邮件中设置Django重定向?
先谢谢您!
编辑:
我克服了设置断线的问题:
messages.error(self.request, mark_safe(
"The link to download the document has expired."
"<br />"
"Please request it again in our catalogue :
<a href='{% url "freepub-home" %}'> my link </a>")
但是我至今还没有找到如何在内部传递Django URL的方法,因为我对引号和双引号有疑问。
答案 0 :(得分:1)
您要传递给mark_safe
的是一个纯字符串,它不会被解释为Django模板,因此您不能在其中使用模板标签语法。您必须使用reverse()
函数来获取url和python字符串格式语法来构建消息:
from django.core.urlresolvers import reverse
# ...
# using triple-quoted string makes life easier
msg = """
The link to download the document has expired.
<br />
Please request it again in our catalogue :
<a href='{url}'> my link </a>
"""
url = reverse("freepub-home")
messages.error(self.request, mark_safe(msg.format(url=url)))