2014-10-08 31 views
4

我在Django中有一個UpdateView。兩個不同的提交按鈕在Django中的形式相同

我只是一個正常的提交按鈕。當對象正確更新時,它會通過success_url重定向到對象列表。

我可以做兩個不同的提交按鈕:提交併重定向到對象列表頁面(ListView)的一個按鈕和提交併重定向到對象詳細信息頁面(DetailView)的另一個按鈕?

我不知道如何以聰明的方式做到這一點。

回答

9

由於您要提交到同一地點,並且只想在保存後更改重定向目標,所以這很簡單。提交按鈕就像任何其他輸入控件一樣,它們具有名稱和值,並且您可以在POST數據中收到這些按鈕。所以,在你的模板,你可以有:

<input type="submit" name="list" value="Submit and go to list"> 
<input type="submit" name="detail" value="Submit and go to detail"> 

,並在您的視圖:

if form.is_valid(): 
    form.save() 
    if 'list' in request.POST: 
     return redirect('list_url') 
    else: 
     return redirect('detail_url') 
相關問題