2010-03-22 46 views
1

我有一个关于Django URL配置的简单问题,我猜也是REGEX。我有一个小的配置应用程序,需要在环境和文物以下列方式:Django的URL正则表达式问题

url(r'^env/(?P<env>\w+)/artifact/(?P<artifact>\w+)/$', 'config.views.ipview', name="bothlist"), 

现在,这工作得很好,但我想这样做是有它能够有一个是可选的附加参数,如详细模式或无格式模式。我知道如何在视图中做到这一点,但我无法将头围绕正则表达式。

通话将像

GET /env/<env>/artifact/<artifact>/<opt:verbose>/<opt:noformat> 

任何帮助,将不胜感激,谢谢!

-Shawn

回答

9

我不会把这些选项放到URL中。如你所说,这些是可选的选项,它们可能只会改变输出。他们不属于一个URL。

你最初的正则表达式匹配应该像URL:

/env/<env>/artifact/<artifact>?verbose=1&noformat=1 

恕我直言,这是网址

+0

阿的一个更好的用法,你是聪明人;)我认为这是完美的解决方案,我会等着你并看看别人的建议,但到目前为止,这似乎是一个胜利者! – shawnjan 2010-03-22 18:46:59

+4

+1:如果它不识别所请求的资源,则它不应该是URI的一部分。 – 2010-03-22 19:23:24