2010-03-22 45 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