2015-05-02 19 views
2

我知道使用GET參數可以知道你來自哪個視圖。 Ref:Django Redirect to previous view。但是,如果您在當前視圖上執行POST,則會消除此信息。記住你在當前視圖上進行POST後來自哪個視圖

爲了我的目的,我有一個django應用程序,您可以從多個目的地獲得相同的視圖,它具有表單和後退按鈕。一切工作正常,直到您提交表單,然後重定向到相同的視圖,沒有任何關於你從哪裏來的信息。

如果需要任何示例來理解我的問題,請發表評論。

回答

3

即使您使用POST方法GET參數仍然爲您提供:

<form action="{% if from %}?next={{ from }}{% endif %}" method="POST" /> 

然後在視圖:

def some_view(request): 
    if request.method == 'POST': 
     form = SomeForm(request.POST) 
     ... 
     next_url = request.GET.get('next') 
    ... 

而且,你可以省略的的action屬性<form>標籤,因此您不必將from上下文變量傳遞給模板:

<form method="POST" /> 

在這種情況下,GET參數將在請求之間自動「保存」。

+0

太棒了,像魅力一樣工作! –

相關問題