2012-05-09 12 views
1

動的URLを使用してWebサービスを開発したいと考えています。私は最初からグループの数を知らないので、私は、もう少しダイナミックな必要django URLの名前付きグループの動的番号

(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive') 

私の目的のために:という名前のグループとの

共通URLパターンは、このようなものになるだろう。

など。可能なURLは次のようになります。

  • 記事/ポスト/コメント
  • 記事/ポスト/著者
  • 記事/ポスト/ ...

私はこのようなものを使用することができます

(r'^(?P<cat1>)/(?P<cat2>)/$', 'module.views.function') 
(r'^(?P<cat1>)/(?P<cat2>)/(?P<cat3>)/$', 'module.views.function') 
(r'^(?P<cat1>)/(?P<cat2>)/(?P<cat3>)/(?P<cat4>)/$', 'module.views.function') 

.. など。これを行うよりスマートな方法はありますか?前もって感謝します!

+0

これは私の前に欲しかったが、良い解決策を思いついたことがなかった –

答えて

0

あなたが1つの記事しか持っていない場合は、それをarticle/post/にします。それ以外の場合はarticles/post/にしますか?

URLがちょうど正規表現ですので、あなたは

(r'^articles?/post/$', 'some_view') 

のようなもの?テストsの0または1のいずれかを行うことができます。

基本的にURLが意味をなさないと思われる場合は、articles/post/commentsと書くと、のすべてのの記事に投稿したいと思うように聞こえますか? article/post/と同じですが、それはどういう意味ですか?どの記事を投稿しようとしていますか(あなたは1つしかなくても1つしかありません)?

通常、URLはarticles/5/post/commentsのように見えますが、「5のpkの記事にコメントを投稿したい」という意味です。

私の答えが役に立たなかったら申し訳ありません。私は本当にあなたの質問を理解していないと思う。

+0

申し訳ありませんが、私の例のURLは誤解を招いています。問題はより一般的で、記事や投稿ではなく、スラッシュ(名前付きグループ)の数が既知でない場合、スラッシュ間の情報を抽出する方法についてです。 – Stefan

+0

'(r '(?P \ w +)''( '^'と '$'がないことに注意してください)を試しましたか?しかし、一致した名前の正規表現グループに対してビューがリストを取ることができるかどうかはわかりません。それは '(r '^(?。+)$''(URL全体と一致します)を試してみて、 '/'に 'match 'を分割します。 – hobbes3

関連する問題