我在Django中有一个UpdateView。
我只有一个正常的提交按钮。正确更新对象后,它会通过success_url
重定向到对象列表。
我可以制作两个不同的提交按钮:一个按钮提交并重定向到对象列表页面(ListView),另一个按钮提交并重定向到对象详细信息页面(DetailView)?
我不知道如何以聪明的方式做到这一点。
答案 0 :(得分:10)
由于您要提交到同一个地方,并且只想在保存后更改重定向目的地,这很简单。提交按钮就像任何其他输入控件一样,它们具有名称和值,并且您在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')