#django #django-urls
Вопрос:
У меня есть путь django, который передает нужный мне 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[0-9A-Za-z_-] )/(as9osn-a59ae3d7196bb1fa693e770fb87f19c1[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})
Я получаю это: http://127.0.0.1:8000/auth/activate/NTQ/asbda1-165d68dbe6fee8c47f5099c4ab709c48
Ответ №1:
Вы используете синтаксис регулярных выражений вместо синтаксиса пути. Таким образом, вы должны использовать re_path(…)
функцию [Django-doc] для указания регулярного выражения или преобразования его в синтаксис пути. Таким образом, мы можем реализовать это с помощью:
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'),
# ⋮
]