2014-05-20 19 views
0

我有一個關於在Django中使用可選參數的查詢。Django:URL可選參數重定向

這是我的示例代碼。

url(r'^(?P<type>str)/(?P<term>2006)/$', 'myapp.views.index'), 


def index(request, type, term, id = None): 
    ..... { some code } 

那麼,究竟我在的目標是,當我訪問的URL,http://x.x.x.x/myapp/str/2006/應該顯示與作爲一個選擇框ID數的形式。當我選擇一個特定的ID並點擊顯示時,它會在該頁面上顯示詳細的結果。

使用此當前設置,會發生什麼情況是,當我單擊「顯示按鈕」時窗體顯示細節,但URL仍爲http://x.x.x.x/myapp/str/2006/而不是http://x.x.x.x/myapp/str/2006/ {{id}}。

這是因爲我在做同樣的視圖功能的一切。

def index(request, type, term, id = None): 
     if request.method == 'POST' and 'btn' in request.POST: 
       .... show details 
     else: 
       ..... SHow the original form 

如何實現這個http://x.x.x.x/myapp/str/2006/ {{ID}}來自同一功能視圖發佈時。

THanks。

+0

我很困惑。網址一直都是一樣的(即使你顯示細節)?或者URL可以不同,但​​是視圖的功能是一樣的嗎? – qwetty

回答

0

只需添加一個id另一個URL的正則表達式的urls.py

url(r'^(?P<type>str)/(?P<term>2006)/(?P<id>\d+)$', 'myapp.views.index'), 
url(r'^(?P<type>str)/(?P<term>2006)/$', 'myapp.views.index'), 
+0

那不行。我試過了。嗯。可能是我會改變它的解析順序。讓我檢查並確認。 – Bala