Как создать url на django вне шаблона

У меня есть приложение, в котором при создании экземпляра пользователя отправляется сигнал для отправки сообщения электронной почты. Я реализую сигнал для отправки SMS.

В моем 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
}

как я могу построить этот URL вне шаблонов Django, потому что {% url 'password-reset-and-active-account' %} не будет работать вне шаблона, правильно?

Что ж, вы можете использовать обратный метод. Это равносильно тегу шаблона url, но для программирования на python.

from django.urls import reverse

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

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

Вернуться на верх