Django сообщение с перерывом и URL перенаправления внутри
Я хотел бы улучшить мой django message
с некоторыми вещами: добавить breakline
в тексте и добавьте URL с помощью 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}"
Затем, как я могу установить перенаправление Django в моем сообщении благодаря обратному URL "freepub-home"
?
Спасибо заранее!
РЕДАКТИРОВАТЬ:
Я преодолеваю, чтобы установить предел:
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>")
Но я до сих пор не понимаю, как я могу передать URL-адрес Django, потому что у меня есть проблема с кавычками и двойными кавычками.
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)))