53

数値パラメーターを持つ Django の URL パターンは次のとおりです。

url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail')

poll_id が数字ではなく文字列の場合、正しい構文は何ですか?

4

7 に答える 7

52

URL に文字列パラメーターを含めるには、次のような URL を使用できます。

url(r'^polls/(?P<string>[\w\-]+)/$','polls.views.detail')

これにより、スラッグ文字列が通過することさえ可能になります。例えば、node-js などの文字列です。

于 2016-04-10T10:07:30.673 に答える
35

気になるキャラにもよります。ドキュメントが言うよう\wに、英数字またはアンダースコアが表示されます。

于 2012-08-10T03:15:52.163 に答える
1

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

于 2018-02-15T02:38:49.773 に答える
0

山かっこの引数がパスの場合、つまり「/」が含まれている場合は、 を使用する必要があります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 パスと照合できます。」

于 2022-01-19T22:20:56.680 に答える