django动态url中命名组的数量

时间:2012-05-09 17:52:32

标签: regex django url-pattern

我想开发一个带动态网址的网络服务。

具有命名组的常见url模式将是这样的:

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

出于我的目的,我需要更多动态,因为我从一开始就不知道群组的数量。

E.g。可能的网址可能是:

  • 文章/后/评论
  • 文章/后/作者
  • 文章/后/ ...

我可以使用这样的东西:

(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')

.. 等等。有更聪明的方法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

等等,如果您只有1篇文章,那么您希望它是article/post/,否则您希望它是articles/post/

由于URL只是正则表达式,因此您可以执行类似

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

?测试s中的0或1。

但从根本上说,您的网址似乎没有意义,当您撰写articles/post/comments时,听起来您想在所有文章上发表评论?与article/post/相同,这意味着什么?你想发布哪篇文章(你只有一篇,最多一篇)?

通常网址看起来像articles/5/post/comments,这意味着&#34;我想在文章上发表评论,其中pk为5&#34;。

很抱歉,如果我的回答没有帮助。我想我真的不明白你的问题。