Django 将路径保存到变量中

Django Save Path into Variable

我有一个传递我需要的 URL 的 django 路径,但我想将它存储到一个变量中,我可以在邮件中使用该变量 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

您正在使用正则表达式语法而不是路径语法。因此,您应该使用 re_path(…) function [Django-doc] 来指定正则表达式,或将其转换为路径语法。因此,我们可以通过以下方式实现:

from django.urls import <strong>re_path</strong>

urlpatterns = [
    # ⋮,
    <strong>re_path(</strong>'activate/<strong>(?P<uidb64></strong>[0-9A-Za-z_\-]+<strong>)</strong>/<strong>(?P<token></strong>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20}<strong>)</strong>/$', views.activate, name='activate'<strong>)</strong>,
    # ⋮
]