当我尝试修复我的urlpatterns
中的网址时,它显示了我的错误:
错误:
您的网址格式“url(r'^ player / [?P [ - \ w \ x20] +] / $',PlayerDetailView.as_view(),name ='player-detail-view'),”无效。确保urlpatterns是url()实例的列表。尝试删除字符串'url(r'^ player / [?P [ - \ w \ x20] +] / $',PlayerDetailView.as_view(),name ='player-detail-view'),'。 urlpatterns列表不应该有前缀字符串作为第一个元素。*
我的代码:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', HomePageView.as_view(), name='home-page'),
url(r'^teams/$', TeamsListView.as_view(), name='teams-list-view'),
url(r'^scores/$', ScoresListView.as_view(), name='scores-list-view'),
url(r'^player/[?P<slug>[-\w\x20]+]/$', PlayerDetailView.as_view(), name='player-detail-view'),
]
谁能帮我??
语法有点偏,您需要在“捕获组”周围使用圆括号(..)
而不是方括号[..]
:
url(
r'^player/(?P<slug>[-\w\x20]+)/$',
PlayerDetailView.as_view(),
name='player-detail-view'
),
此外,如果我没记错,一个slug不能包含空格,所以你可能想删除\x20
。
请注意,在django-2.0及更高版本中,可以使用path(..)
[Django-doc]函数,它支持slug,如:
# Django 2.0 and higher
path('player/<slug:slug>/', PlayerDetailView.as_view(), name='player-detail-view'),
然后Django用内置模式替换了slug,这使得URL模式更具“声明性”。