2013-08-16 29 views
1

我在我的urls.py這些不同的網址幾乎相同的URL:Django的 - urls.py中如何相互

這一個:

url(r'^bundesland/(?P<bundesland>.+)/$','home.views.func_a'), 

這一個:

url(r'^bundesland/(?P<bundesland>.+)/stadt/(?P<stadt>)/$','home.views.func_b'), 

和我有兩個URL來的urls.py:

1)/bundesland/bavaria/應該去func_a
2)/bundesland/bavaria/stadt/munich/應該去func_b

但是URL 2)/bundesland/bavaria/stadt/munich/仍然會func_a,而不是func_b。爲什麼是這樣?

我非常需要幫助。

+1

嘗試更改順序? –

+0

@JeremyD,我沒有影響。 – doniyor

+0

真的,https://docs.djangoproject.com/en/dev/topics/http/urls/,它說它按順序排列並獲得第一個匹配的URL。如果你刪除第一個網址,它工作嗎? –

回答

5

代替.+(這需要所有字符到最後),使用\w+

url(r'^bundesland/(?P<bundesland>\w+)/$','home.views.func_a'), 

這將採取斜線之間的一個或多個字母。

+0

是的,你還需要第二個(城市)網址。 –

+0

所以我會爲兩個urls做''w +''? 'url(r'^ bundesland /(?P \ w +)/ $','home.views.func_a'),''和url(r'^ bundesland /(?P \ w +)/ stadt /(?P \ w +)$','home.views.func_b'),''? – doniyor

+0

是的,這應該工作。 –