1
假設我要傳遞的用戶名中的網址:如何在Django通過特殊字符的URL
username = '[email protected]'
所以在網址,它是這樣的:
url(r'(?P<user_name>\w+)/$', 'user_related.views.profile', name='profile'),
而獲取該用戶在views.py:
def profile(request, user_name):
user = User.objects.get(username=user_name)
return render(request, 'user_profile.html', {'user':user})
但我得到一個錯誤:
User matching query does not exist.
因爲django自動將@
轉換爲%40
。我怎樣才能將實際的username
傳遞給視圖?請幫我解決這個問題。謝謝!從標準urllib
模塊
完美!我仍然收到錯誤「用戶匹配查詢不存在」,但您的編輯幫助我!謝謝!然而,只是想知道,在urls中使用'%'是什麼,因爲它只會使用'@'? – Kakar
'@'在URL(http:// user:[email protected])中有特殊含義,因此在「URI」RFC中建議將'@'編碼爲'%40'。但AFAIK在現實生活中可以安全地在URL路徑中使用'@'。 – catavaran
這個答案是拯救生命的!非常感謝。 –