Django - 如何在 format_html 安全字符串中使用 URL 模板标签?
Django - How do I use the URL template tag in a format_html safe string?
我正在尝试将 URL 模板标签包含在我使用 format_html 方法创建的字符串中:
message = format_html(
'''<div>
<p>{0} wants to join {1}!</p>
{% url 'accounts:detail' pk={2} as profile_url %}
<p>
View their
<a href="{{ profile_url }}">profile</a>
</p>
<div>Approve</div>
<div>Deny</div>
</div>
''',
self.request_user.username,
self.lab.name,
self.request_user.pk)
输出到浏览器的html是这样的:
<a href="{ url 'accounts:detail' pk=4}">profile</a>
基本上我的 url 标签没有 %。
我尝试通过键入以下内容来转义 %:
{%% url 'accounts:detail' pk={2} as profile_url %%}
但我收到相同的输出。
有什么想法吗?
您或许应该尝试使用
{{ profile_url|safe }}
或使用 {% autoescape %}
Autoescappe
您可以直接创建 URL 与 reverse()
:
message = format_html(
'''<div>
<p>{0} wants to join {1}!</p>
<p>
View their
<a href="{2}">profile</a>
</p>
<div>Approve</div>
<div>Deny</div>
</div>
''',
self.request_user.username,
self.lab.name,
reverse('accounts:detail', kwargs={'pk':self.request_user.pk})
)
我正在尝试将 URL 模板标签包含在我使用 format_html 方法创建的字符串中:
message = format_html(
'''<div>
<p>{0} wants to join {1}!</p>
{% url 'accounts:detail' pk={2} as profile_url %}
<p>
View their
<a href="{{ profile_url }}">profile</a>
</p>
<div>Approve</div>
<div>Deny</div>
</div>
''',
self.request_user.username,
self.lab.name,
self.request_user.pk)
输出到浏览器的html是这样的:
<a href="{ url 'accounts:detail' pk=4}">profile</a>
基本上我的 url 标签没有 %。
我尝试通过键入以下内容来转义 %:
{%% url 'accounts:detail' pk={2} as profile_url %%}
但我收到相同的输出。
有什么想法吗?
您或许应该尝试使用
{{ profile_url|safe }}
或使用 {% autoescape %}
Autoescappe
您可以直接创建 URL 与 reverse()
:
message = format_html(
'''<div>
<p>{0} wants to join {1}!</p>
<p>
View their
<a href="{2}">profile</a>
</p>
<div>Approve</div>
<div>Deny</div>
</div>
''',
self.request_user.username,
self.lab.name,
reverse('accounts:detail', kwargs={'pk':self.request_user.pk})
)