【问题标题】:Two different submit buttons in same form in DjangoDjango中相同形式的两个不同提交按钮
【发布时间】:2014-12-03 02:06:40
【问题描述】:
我在 Django 中有一个 UpdateView。
我只有一个普通的提交按钮。当对象正确更新时,它会通过success_url 重定向到对象列表。
我可以制作两个不同的提交按钮:一个提交并重定向到对象列表页面 (ListView) 的按钮和另一个提交并重定向到对象详细信息页面 (DetailView) 的按钮?
我不知道如何巧妙地做到这一点。
【问题讨论】:
标签:
python
django
forms
django-models
django-forms
【解决方案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')