两个不同的提交按钮在Django中以相同的形式

时间:2014-10-08 12:04:02

标签: python django forms django-models django-forms

我在Django中有一个UpdateView。

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

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

我不知道如何以聪明的方式做到这一点。

1 个答案:

答案 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')