2012-01-10 67 views
2

我剛剛創建了一個url模式條目,用於將內容路由到我的註冊視圖,但即使該URL清楚地顯示,該參數也沒有被傳遞。urls.py不傳遞url模式

我的URL模式:

url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'), 

我的視圖定義:

def register(request, profile_type=None): 

我嘗試加載的URL(不是真實的,但爲例):

http://example.com/register/user 

當我在視圖的開頭正好設置一個pdb斷點時,profile_type是None,但url是http://example.com/register/user

我試圖運行re.match,看看正則表達式是錯誤的,我得到了以下內容:

match = re.match(r'^register/(?P<profile_type>\w+/?$)', 'register/user') 
match 
<_sre.SRE_Match object at 0x1004d48a0> 
match.groupdict() 
{'profile_type': 'user'} 

顯然,正則表達式是匹配的URL的「用戶」的一部分,但它沒有獲得通過。我會喜歡這個幫助。

的urls.py中包含其他類似的模式,這些模式是否正常工作:

url(r'^user/(?P<profile_id>\d+/?$)', 'userProfile.views.registeredUser'), 

的觀點是在正確的地方,並正確調用但參數沒有被通過。

其實,我有一個文件在之前的模式,看起來像這樣:

url(r'^register', 'userProfile.views.register'), 

我想這是第二圖案和搞亂事情之前獲取調用...

+0

請發佈您的**完全**網址格式。括號在哪裏? $?在哪裏?如果您按照編輯屏幕上清楚顯示的格式化說明,「Markdown」不會*刪除空格 - 用反斜槓圍繞您的代碼進行內聯格式化,或縮進四行代碼片段。 – 2012-01-10 09:42:36

+0

這個條目是應用程序的urls.py還是項目的urls.py? – keni 2012-01-10 17:10:03

+0

此條目位於項目的urls.py中。確切的URL模式是:'url(r'^ register /(?P \ w + /?$)','userProfile.views.register'),' @DanielRoseman,Markdown does not remove space。它_did_刪除模式的部分,這就是我添加空格的原因。 – serpah 2012-01-11 03:07:38

回答

0

正如我剛剛加入到這個問題的一部分,我在我的文件,該文件被搞亂的東西了之前的模式:

url(r'^register', 'userProfile.views.register'),

我把它改爲:

url(r'^register+/?$', 'userProfile.views.register'),

現在一切正常。/facepalm

0

嘗試設置到APPEND_SLASH在設置中錯誤。見that更多細節

+0

試過了。仍然沒有愛。 – serpah 2012-01-10 05:24:44

+0

檢查userProfile是否在INSTALLED_APPS中。檢查userProfile是否包含models.py(可能爲空)。 – Ilya 2012-01-10 05:33:35

+0

刪除正則表達式中的空格,如 url(r'^ register /(?P \ w + /?$)','userProfile.views.register'),)。 我剛剛試過你的例子。一切正常,請用文件夾結構和settings.py更新你的問題。 – Ilya 2012-01-10 05:36:37