-4

私は新しい Django サイトに取り組んでいますが、URL ディスパッチャーに問題があります。

基本的に、次の URL を機能させるには助けが必要です。

/site/aaa-00

/site/aaa-00-00

私はdjango docsのURLディスパッチャーを見てきましたが、今はもっと混乱しています。

url(r'^/site/(?P<name>[-\w]+)/$', 'rollout.views.update'),
4

1 に答える 1

2

あなたの正規表現は仕事をするつもりはありません。次のようになると思います。

^site/(?P<path>[-\w]+)/$

あなたがしたいことをする。2 つの主な違い: URL パターンは、先頭のスラッシュと一致してはなりません。つまり、スラッシュは取り除かれます (より正確には、URL のパス コンポーネントの一部ではありませんが、それは衒学的になっています)。また?P、式ではグループの名前を使用する必要があります (ビュー関数のパラメーターに変換されます)。

気付いていないかもしれないもう 1 つのこと: /URLconf 行の末尾に末尾がありますが、一致させようとしている URL にはありません。デフォルトでは、パスが URLconf 内の何かとすでに一致していない限り、 Django (CommonMiddleware実行中) は末尾を含めるように自動リダイレクトすることに注意してください。/これはAPPEND_SLASH構成オプションを使用して制御できます。あなたの場合、それは「うまくいく」はずですが、リダイレクトが発生するため、末尾のスラッシュなしで URL を発行しないでください (または URLconf でスラッシュをオプションにします)。

于 2013-01-03T22:57:03.347 に答える