Django1.11url模式错误,如何解决?

2024-09-30 20:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图修复我的urlpatterns中的url时,它会显示以下错误:

错误:

Your URL pattern "url(r'^player/[?P[-\w\x20]+]/$', PlayerDetailView.as_view(), name='player-detail-view')," is invalid. Ensure that urlpatterns is a list of url() instance. try removing the string 'url(r'^player/[?P[-\w\x20]+]/$', PlayerDetailView.as_view(), name='player-detail-view'),'. The list of urlpatterns should not have a prefix string as the first element.*

我的代码:

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'),
]

有人能帮我吗??你知道吗


Tags: ofthenameviewurlstringisas
1条回答
网友
1楼 · 发布于 2024-09-30 20:37:30

语法有点错误,您需要在“捕获组”周围使用圆形方括号(..),而不是方形方括号[..]

url(
    r'^player/(?P<slug>[-\w\x20]+)/$',
    PlayerDetailView.as_view(),
    name='player-detail-view'
),

此外,如果我没记错的话,slug不能包含空格,因此您可能需要删除\x20。你知道吗

请注意,在及更高版本中,可以使用^{} [Django-doc]函数,它支持slug,如:

# Django 2.0 and higher

path('player/<slug:slug>/', PlayerDetailView.as_view(), name='player-detail-view'),

然后Django用一个内置模式替换slug,这使得URL模式更加“声明性”。你知道吗

相关问题 更多 >