2017-02-26 86 views
0

我想通過django(電子郵件,名稱)中的網址傳遞兩個參數它工作正常,當我只是通過電子郵件通過但當我通過名稱通過以及我得到一個錯誤(沒有反向匹配)我的名字包含空格django url no reverse match

URL模式

url(r'^details/(?P<email>[\w.%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4})/(?P<name>([\W ]+))/$', details, name="details") 

完整的錯誤消息

Reverse for 'password' with arguments '(u'[email protected]', u'tom')' and keyword arguments '{}' not found. 1 pattern(s) tried: ['details/(?P<email>[\\w.%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4})/(?P<name>([\\W ]+))/ $

傳球變量通過URL

{%url 'details' email name %} 
+0

的可能的複製[什麼是NoReverseMatch錯誤,以及如何解決呢?(http://stackoverflow.com/questions/38390177/what-is-a-noreversematch-error-and如何做 - 我 - 修復它) – Sayse

+0

請顯示完整的錯誤信息。 – knbk

+0

我已添加完整的錯誤消息 – Percy3872

回答

0

什麼是你正在得到確切的錯誤。處理多個變量時,可以嘗試以下操作。

{%url 'details' email=email name=name %} 

更新:

url(r'^details/(?P<email>[\w.%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4})/(?P<name>([\W ]+))/$', details, name="details") 
+0

我仍然得到沒有反向匹配錯誤 – Percy3872

+0

你可以嘗試,如果你試圖傳遞的值匹配正則表達式正確。 –

+0

我在名稱中傳遞的值有一個空格 – Percy3872

0

你可能想改變

(?P<name>(\W+)) # non-alphanumeric 

(?P<name>\w+) # alphanumeric 

的大寫版本是,一個會假設,與你想允許的名字(和一般的網址)完全相反。

Python regex syntax docs.

+0

我將W更改爲小寫,但它仍然無效 – Percy3872

+0

您傳遞的名稱中包含哪些字符? – schwobaseggl

+0

您也可能想要刪除多餘的括號。 – schwobaseggl