数値パラメーターを持つ Django の URL パターンは次のとおりです。
url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail')
poll_id が数字ではなく文字列の場合、正しい構文は何ですか?
URL に文字列パラメーターを含めるには、次のような URL を使用できます。
url(r'^polls/(?P<string>[\w\-]+)/$','polls.views.detail')
これにより、スラッグ文字列が通過することさえ可能になります。例えば、node-js などの文字列です。
気になるキャラにもよります。ドキュメントが言うよう\w
に、英数字またはアンダースコアが表示されます。
Django バージョン >= 2.0 を使用している場合、これは以下のように簡単に実行できます。
from django.urls import path
urlpatterns = [
...
path('polls/<string>/$','polls.views.detail')
...
]
ソース: https://docs.djangoproject.com/en/2.0/ref/urls/#django.urls.path
山かっこの引数がパスの場合、つまり「/」が含まれている場合は、 を使用する必要がありますpath:
。
例:
path('section/<path:some_path>,app.views.some_view,name='some_name')
ソース: https://docs.djangoproject.com/en/4.0/topics/http/urls/#path-converters
(編集済み)
"str - パス区切り文字 '/' を除いて、空でない任意の文字列に一致します。コンバーターが式に含まれていない場合、これがデフォルトです。
slug - ASCII 文字または数字と、ハイフンとアンダースコア文字で構成される任意のスラッグ文字列に一致します。たとえば、build-your-1st-django-site です。
path - パス区切り文字「/」を含む、空でない任意の文字列に一致します。これにより、str のように URL パスのセグメントではなく、完全な URL パスと照合できます。」