2013-03-03 78 views
0

所以我有一個主頁面(/ Main)和一個允許用戶與我聯繫的頁面(讓我們稱之爲/聯繫人)。如何在Django中重定向兩次?

用戶在聯繫人中成功提交表單後,我想將它們重定向到Main並在頁面頂部顯示一個小框,表示「表單已成功提交」。我已經能夠做到這一點,通過重定向到一個類似於/ Main/Success的URL,其中基本上是主視圖,並且傳入了成功參數。

問題是,我不希望URL在用戶的瀏覽器中顯示/ Main/Success。我希望它在URL地址框中看起來像/ Main,即使用戶在頁面頂部看到一個額外的框。這是爲了防止人們在地址欄中簡單地輸入/ Main/Success,然後轉到頁面頂部的框。用戶只有在成功提交表單後才能看到成功框。另外,當用戶刷新帶有成功框的主頁面時,它應該只是再次顯示主頁面而沒有成功框。

這是否意味着我應該重定向兩次?從/聯繫到/ Main /成功再次/ Main?如果我這樣做,我該如何讓盒子在Main上顯示?任何想法如何解決這個問題?自上次以來,我一直很困惑,並會非常感謝我能得到的任何幫助。

謝謝!

回答

4

看一看Django messages framework。它允許您定義這種類型的消息並避免多個重定向。

所有你需要做的,是在你的模板,將顯示信息中添加一些代碼(如果有的話)是這樣的:在

{% if messages %} 
    {% for message in messages %} 
     {{ message }} 
    {% endfor %} 
{% endif %} 

,然後就可以「送」的消息給用戶的查看這樣的:

from django.contrib import messages 
messages.success(request, 'Form submitted successfully') 

詳情(例如,其消息的種類有什麼模板的屬性的消息具有)檢查出上述的文檔。

+0

謝謝邁克爾,那真的很有幫助! – 2013-03-03 19:01:27