Django 1.11 URL模式错误,如何解决?

时间:2018-09-02 10:56:02

标签: python regex django

当我尝试修复mogrify中的网址时,它向我显示此错误:

错误:

  

您的网址格式“ 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列表不应将前缀字符串作为第一个元素。*

我的代码:

mogrify -format webp "%%f\%%a"

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

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

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

此外,如果我没记错的话,子弹不能包含空格,因此您可能要删除\x20

请注意,在及更高版本中,可以使用path(..) [Django-doc]函数,该函数支持以下代码:

# Django 2.0 and higher

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

然后Django用 builtin 模式替换该段代码,这使URL模式更具“声明性”。