python - Django 中相同表单的两个不同提交按钮

标签 python django forms django-models django-forms

我在 Django 中有一个 UpdateView。

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

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

我不知道如何巧妙地做到这一点。

最佳答案

由于您要提交到同一个地方,并且只想在保存后更改重定向目标,所以这很简单。提交按钮就像任何其他输入控件一样,它们有一个名称和一个值,并且您在 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')

关于python - Django 中相同表单的两个不同提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256469/

相关文章:

c# - 除了计算距离之外,如何衡量 2 个字符串的相似性

javascript - jQuery 多次触发提交表单事件(我认为)

python - 使用字符串和 input() 调用方法

python - pytest - 模拟网络故障

django 测试 response.request.user.is_authenticated() 在注销后返回 True

jquery - Emberjs-1.0.0-rc.6 点击动态添加更多或多个输入字段

python - Gif 动画不在 Kivy 应用程序中播放

python - 无法读取所需的 excel 文件作为 Python 中的输出

python - 一个模型如何通过外键与另一个模型相关联?

python - Tango with Django (v1.9/1.10) - 第 5 章,populate_rango 问题