这是我的代码..
urlpatterns =[
path('',views.School_Lview.as_view(),name='list'),
path('(?P<pk>\d+)/',views.School_Dview.as_view(),name='detail')
]
我想让这个模板运作
{% for school in schools %}
<h2><li><a href="{{school.id}}"> {{school.name}}</a></li></h2>
{% endfor%}
答案 0 :(得分:2)
django2.0不支持在 django.urls.path() 中使用正则表达式,如果你真的想在你的网址中写正则表达式,我会建议你使用 django.urls.re_path() 这是旧版本的新功能 django.conf.urls.url
路径()与 re_path()
之间的区别path()您的网址将被写为;
IEnumerable<int> result = matrix.SelectMany(x => x.Keys);
re_path()
from urls import path
urlpatterns =[
path('',views.School_Lview.as_view(),name='list'),
path('<int:pk>/',views.School_Dview.as_view(),name='detail')
]
检查official documentation以获取有关django2.0
中网址路由的更多信息答案 1 :(得分:1)
我修正了......我使用了re_path而不是路径,它就像一个魅力......
re_path('(?P<pk>\d+)/',views.School_Dview.as_view(),name='detail')
答案 2 :(得分:1)
虽然答案是正确的,但我只是想指出,Django
实际上使用正则表达式[0-9]+
而不是\d+
作为主键。
它们的作用相同,但是here可以看到所有默认转换器及其正则表达式,它们隐藏在“新”路径语法的后面。