Django中相同形式的两个不同提交按钮
Posted
技术标签:
【中文标题】Django中相同形式的两个不同提交按钮【英文标题】:Two different submit buttons in same form in Django 【发布时间】:2014-12-03 02:06:40 【问题描述】:我在 Django 中有一个 UpdateView。
我只有一个普通的提交按钮。当对象正确更新时,它会通过success_url
重定向到对象列表。
我可以制作两个不同的提交按钮:一个提交并重定向到对象列表页面 (ListView) 的按钮和另一个提交并重定向到对象详细信息页面 (DetailView) 的按钮?
我不知道如何巧妙地做到这一点。
【问题讨论】:
【参考方案1】:由于您提交到同一个地方,并且只想在保存后更改重定向目标,这很简单。提交按钮就像任何其他输入控件一样,它们具有名称和值,并且您在 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')
【讨论】:
以上是关于Django中相同形式的两个不同提交按钮的主要内容,如果未能解决你的问题,请参考以下文章
带有两个提交按钮的 Django 表单。 . .一个需要字段,一个不需要
Django request.POST 不包含提交表单的按钮的名称