python - 如何在 Django 2 模板中生成绝对 URL
问题描述
我有一个用于呈现电子邮件的 html 模板,在该模板中,我想附加验证链接。
我正在使用以下代码生成链接
{% url 'verify_email' token=token email=email %}
但是这个会生成以下 URL 而不是绝对 URL。
我读了这个 SO 线程
和一些最初的谷歌结果,但所有这些似乎都很旧,不适合我。
TLDR:如何在 Django2 模板文件中生成绝对 URL
解决方案
您可以使用build_absolute_uri()
其他线程中的引用并注册自定义模板标签。takes_context
只要您已django.template.context_processors.request
包含在模板上下文处理器中,请求就会在上下文中提供(您通过 启用)。
from django import template
from django.shortcuts import reverse
register = template.Library()
@register.simple_tag(takes_context=True)
def absolute_url(context, view_name, *args, **kwargs):
request = context['request']
return request.build_absolute_uri(reverse(view_name, args=args, kwargs=kwargs))
更多关于在哪里以及如何在文档中做到这一点。
然后您可以像这样在模板中使用标签:
{% absolute_url 'verify_email' token=token email=email %}
推荐阅读
- swiftui - SwiftUI:使用切换问题更改应用程序主题
- html - 滚动时更改所选按钮和图像
- javascript - 多种动态形式,e.preventDefault(); 未正确触发
- javascript - 有人知道我如何将 Mappa Js 移植到 React Native 吗?
- linux - 两个树莓派之间的 gstreamer。无法解码流
- java - JOptionPane 未将数据存储在数组中或无法正确迭代
- javascript - Replit database.get 在与参数一起使用时返回 null,但在与参数的值一起使用时不返回?
- java - 在 commons-codec 升级后 Base32 没有抛出异常
- python - Pandas 发现两列之间的累积差异
- reactjs - Auth0 和 react 在导航之前不会更新我的登录按钮