Django 2.0 path error ?: (2_0.W001) has a route that contains '(?P<', begins with a '^', or ends with a '$'
The new path()
syntax in Django 2.0 does not use regular expressions. You want something like:
path('<int:album_id>/', views.detail, name='detail'),
If you want to use a regular expression, you can use re_path()
.
re_path(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),
The old url()
still works and is now an alias to re_path
, but it is likely to be deprecated in future.
url(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),
Just to add to what @alasdair mentioned, I added re_path as part of the include and it works fine. Here is an example
Add re_path to your import (for django 2.0)
from django.urls import path, re_path
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^$', home, name='home'),
]
Instead of using 're_path' you can also use ''(empty string) as the first argument of your path(). I have used it and it worked for me.
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index,name='index'),
]