我有一个html模板,用于呈现电子邮件,在该模板中,我想附加验证链接。
我正在使用以下代码来生成链接
{% url 'verify_email' token=token email=email %}
,但是这会生成以下URL,而不是绝对URL。
我读了这个SO线程
和一些最初的google结果,但它们似乎都旧了,无法为我工作。
TLDR:如何在Django2模板文件中生成绝对URL
答案 0 :(得分:2)
您可以使用其他线程中引用的build_absolute_uri()
并注册自定义模板标签。只要在模板上下文处理器中包含takes_context
,请求就会在上下文中提供(通过django.template.context_processors.request
启用)。
from django.shortcuts import reverse
@register.simple_tag(takes_context=True)
def absolute_url(view_name, *args, **kwargs):
request = context['request']
return request.build_absolute_uri(reverse(view_name, args=args, kwargs=kwargs))
有关在何处以及如何执行此操作的更多信息in the docs。
然后您可以像这样在模板中使用标记:
{% absolute_url 'verify_email' token=token email=email %}