首页 > 解决方案 > 如何在模板外的 django 上构建 url

问题描述

我有一个应用程序,当创建用户实例时,会发送一个信号来发送电子邮件。我正在实现一个发送短信的信号。

在我的电子邮件 HTML 模板上,我有这行重定向用户,我需要在 SMS 上发送相同的链接。

<a href="{{ uri }}{% url 'password-reset-and-active-account' uidb64=uid token=token %}">Aqui</a>

那里使用的参数是通过这个上下文传递的

context = {
    'user': user,
    'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode("utf-8"),
    'token': default_token_generator.make_token(user),
    'uri': settings.ABSOLUTE_URI
}

我怎样才能在 Django Templates 之外构建这个 URL,因为它{% url 'password-reset-and-active-account' %}在模板之外不起作用?

标签: pythondjango

解决方案


好吧,你可以使用相反的方法。这等于 url 模板标签,但用于 python 编程。

from django.urls import reverse

# ...
url = reverse('password-reset-and-active-account')

https://docs.djangoproject.com/en/3.2/ref/urlresolvers/#reverse


推荐阅读