将旧的 Django URL 更改为新路径

Changing a old Django URL to the new paths

所以我在 Django 2.0 中创建了一个新站点,并按照本教程制作了一个带有激活电子邮件的用户注册表单,我对新的 Django 2 的理解还不够好,所以我问 Django 是什么2 相当于这个 URL

url(r'^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'),

您的路径没有直接转换,您可以使用文档中所述的转换器来转换令牌。这是文档中的示例:

class FourDigitYearConverter:
    regex = '[0-9]{4}'

    def to_python(self, value):
        return int(value)

    def to_url(self, value):
        return '%04d' % value

注册转换器

from django.urls import path, register_converter

from . import converters, views

register_converter(converters.FourDigitYearConverter, 'yyyy')

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<yyyy:year>/', views.year_archive),
    ...
]

或者您可以像现在这样对路径进行正则表达式:

from django.urls import path, re_path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    re_path(r'^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')
]

我会坚持使用 re_path 的正则表达式,因为你知道它有效并且已经完成。

这是文档的 link: https://docs.djangoproject.com/en/2.0/topics/http/urls/