2011-11-29 65 views
0

我有一個問題:如何獲取url的當前路徑。比方說,我有3個導航欄,關於博客和聯繫頁面。在每個頁面中,我都有臉書,推特和手動電子郵件朋友按鈕。當我點擊郵件的朋友按鈕時,當前的URL是www.example.com/about,當前的URL現在已經是www.example.com/emailafriend。我如何獲得www.example/about?也在博客和聯繫。請幫幫我。謝謝。獲取django中的原始路徑

+0

我不明白django如何與此相關。你能否讓你的情況更清楚些? – Gautam

+0

請您可以重寫第四句,我不明白你在問什麼:*當我點擊郵件的朋友按鈕,當前的URL是www.example.com/about,當前URL是現在的URL已經www.example.com/emailafriend.* – MattH

+0

例如,我現在的路徑是www.example.com/about,並且有一封電子郵件是朋友按鈕,點擊後,當前路徑將爲www.example.com/ emailafriend。有沒有辦法,我可以保存當前路徑的變量,然後再移動一個不同的網址? – david

回答

2

您的電子郵件好友按鈕是如何工作的?它是一個django視圖,它將當前的URL和電子郵件發送給它?如果是這樣,您不需要「當前」網址,正如您注意到的那樣,該網址實際上是電子郵件的朋友網址。你想要做的是通過你想要分享的URL參數的URL,即:基於評論

/share?url=http://www.example.com/blog

添加更多信息:

當我參考上面的URL時,我沒有提到你的django URL配置。讓我們退後一步。

在您的About頁面上,您有鏈接給朋友發郵件,對不對?該鏈接可能在您的模板中生成,但每個頁面上都是一樣的。喜歡的東西:

<a href="/emailafriend">Email a friend</a> 

取而代之的是,試試這個:

<a href="/emailafriend?url={{ request.get_full_path }}">Email a friend</a> 

現在,你需要讓你的email_a_friend視圖處理這個問題。它可以通過

request.get('url', ''). 

獲得url一些額外的信息:

以便它逃過你可能會想逃離{{request.get_full_path}}功能,URL安全的,那麼你就必須UNESCAPE它在你看來。一旦您將URL返回到您的視圖中,您可以隨心所欲地進行操作。

{{ request.get_full_path|urlencode }} 
+0

這裏是我的示例網址先生。 URL(R '^約/ $', '約',名稱= '約'), URL(r'emailafriend/$」, 'email_a_friend',名字= 'email_a_friend'), 所以當我在關於頁面中,有一個電子郵件是朋友按鈕,那麼如果我點擊該按鈕,則當前網址現在是sample.com/emailafriend。我想要的是url仍然是sample.com/about。任何想法先生? – david

+0

看到我上面的修改。 –

+0

謝謝傑森。它已經工作。 :) – david

0

嘗試使用相對URL,例如從www.example.com/aboutwww.example.com/email使用/email。使用相關網址是最簡單的解決方案。

看看this

Absolute vs relative URLs

+0

我不能因爲我的域名中有許多子域名。這應該是可見的。 – david

0

這聽起來像你想要得到的引用URL(發送您可以將當前頁面的URL)。這是在請求對象提供給你,雖然它不是100%可靠:

request.META['HTTP_REFERER'] 

更多信息,請參見documentation on HttpRequest objects

+0

是的,這就是它。感謝Brian。 :D – david

+1

再次閱讀問題和回覆後,對於「給朋友發送電子郵件」功能,我可能會使用Jason McClellan的答案中提到的技術,而不是依靠引薦人。但是,儘管如此,你仍然不能相信URL。 –