9

新しい言語/フレームワークを学ぶときはいつでも、私は常にコンテンツ管理システムを作ります...

私はPythonとDjangoを学んでいて、適切なページを選択するURLパターンを作成することに固執しています。

たとえば、単一レベルのURLパターンの場合、次のようになります。

url(r'^(?P<segment>[-\w]+)/$', views.page_by_slug, name='pg_slug'),

これは、次のようなURLに最適です。

http://localhost:8000/page/

さて、DjangoのURLシステムにナメクジのリストを戻すことができるかどうかはわかりません。

http://localhost:8000/parent/child/grandchild/

親、子、孫を返します。

それで、これはDjangoがすでに行っていることですか?または、元のURLパターンを変更してスラッシュを許可し、そこでURLデータを抽出しますか?

よろしくお願いします。

4

1 に答える 1

13

これは、正規表現で中間の「/」文字が使用できないためです。URLセグメントパターンの再帰的定義は可能かもしれませんが、とにかくそれはチャンクとしてビュー関数に渡されます。

これを試して

url(r'^(?P<segments>[-/\w]+)/$', views.page_by_slug, name='pg_slug'),

'/'によってsegments渡された引数を分割すると、が取得されます。ページモデルをどのように編成したかはわかりませんが、それほど洗練されていない場合は、Djangoにすでに含まれているflatpagesパッケージの使用または改善を検討してください。page_by_slug()['parent', 'child', 'grandchild']

ユーザーが生成したページではなくシステム独自のページを示す他の種類のURLがある場合、DjangoのURL照合メカニズムは指定された順序に従うため、リストしたパターンの前にそれらを配置する必要があることに注意してください。

于 2009-07-02T02:29:58.267 に答える