Djangoのslug url正則マッチング

748 ワード

.*に従ってマッチングすると、最終的には/edit//delete/もマッチングされます.
urlpatterns = [
    #...
    url(r'^(?P.*)/$', post_detail, name='detail'),
    url(r'^(?P.*)/edit/$', post_update, name='update'),
    url(r'^(?P.*)/delete/$', post_delete),
]

したがって、[-\w+]は、-シンボル(短横線hyphen)と、すべての小文字に一致する英字を表すために使用される.
urlpatterns = [
    #...
    url(r'^(?P[-\w]+)/$', post_detail, name='detail'),
    url(r'^(?P[-\w]+)/edit/$', post_update, name='update'),
    url(r'^(?P[-\w]+)/delete/$', post_delete),
]