Django Сохранение пути в переменную
У меня есть django path, который передает нужный мне URL, но я хочу сохранить его в переменной, которую я могу использовать в почтовом API Путь таков:
path('activate/(<uidb64>[0-9A-Za-z_\-]+)/(<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})', views.activate, name='activate'),
"uid": urlsafe_base64_encode(force_bytes(account.pk)),
'token': password_reset_token.make_token(account),
Я хочу, чтобы строка имела значение, подобное этому: http://127.0.0.1:8000/auth/activate/(NDM%5B0-9A-Za-z_%5C-%5D+)/(as9osn-a59ae3d7196bb1fa693e770fb87f19c1%5B0-9A-Za-z%5D%7B1,13%7D-%5B0-9A-Za-z%5D%7B1,20%7D)
Я получаю следующее: http://127.0.0.1:8000/auth/activate/NTQ/asbda1-165d68dbe6fee8c47f5099c4ab709c48
Вы используете regex-синтаксис вместо синтаксиса пути. Поэтому вам следует использовать функцию re_path(…)
[Django-doc] для задания regex или преобразования его в синтаксис пути. Таким образом, мы можем реализовать это с помощью:
from django.urls import re_path
urlpatterns = [
# ⋮,
re_path('activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', views.activate, name='activate'),
# ⋮
]