Django中同一表单中有两个不同的提交按钮

8

我在Django中有一个UpdateView。

我只有一个普通的提交按钮。当对象正确更新后,它将通过success_url重定向到对象列表。

我能否制作两个不同的提交按钮:一个按钮提交并重定向到对象列表页面(ListView),另一个按钮提交并重定向到对象详细页面(DetailView)?

我不知道如何以巧妙的方式实现这一点。

1个回答

16

既然您要提交到同一个位置,并且只想在保存后更改重定向目标,那么这很简单。提交按钮与其他任何输入控件一样,具有名称和值,并且您会在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')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接