所以我在 Django 2.0 中创建了一个新站点,并按照本教程制作了一个带有激活电子邮件的用户注册表单,我对新的 Django 2 的理解还不够好,所以我想问 Django 2 的等价物是什么这个网址的
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'),
最佳答案
您的路径没有直接转换,您可以使用文档中所述的转换器来转换 token 。这是文档中的示例:
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 的正则表达式,因为您知道它有效并且已经完成。
这是文档的链接: https://docs.djangoproject.com/en/2.0/topics/http/urls/
关于django - 将旧的 Django URL 更改为新路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420069/