首页 >后端开发 >Python教程 >如何在单个 Django 页面上处理多个表单?

如何在单个 Django 页面上处理多个表单?

Susan Sarandon
Susan Sarandon原创
2024-11-30 03:49:181021浏览

How to Handle Multiple Forms on a Single Django Page?

在 Django 中处理单个页面上的多个表单

在单个 Django 模板上处理多个表单时,必须确定哪个表单正在提交以避免同时处理两个表格。主要挑战在于识别 POST 数据中所需的表单。

多个表单选项

解决此问题的方法有多种:

  • 单独的 URL: 为每个表单分配不同的 URL。这会导致多个视图函数单独处理表单。
  • 提交按钮值:检查 POST 数据中的提交按钮值以确定使用了哪个按钮。

示例解决方案

考虑以下场景,其中我们有两个表单页面:预期短语形式和禁止短语形式。为了处理他们的提交,我们使用以下代码:

if request.method == 'POST':
    if 'bannedphrase' in request.POST:
        bannedphraseform = BannedPhraseForm(request.POST, prefix='banned')
        if bannedphraseform.is_valid():
            bannedphraseform.save()
        expectedphraseform = ExpectedPhraseForm(prefix='expected')
    elif 'expectedphrase' in request.POST:
        expectedphraseform = ExpectedPhraseForm(request.POST, prefix='expected')
        if expectedphraseform.is_valid():
            expectedphraseform.save()
        bannedphraseform = BannedPhraseForm(prefix='banned')
else:
    bannedphraseform = BannedPhraseForm(prefix='banned')
    expectedphraseform = ExpectedPhraseForm(prefix='expected')

在此示例中,我们检查提交按钮值的 POST 数据。根据该值,我们实例化相应的表单并尝试保存它。前缀确保提交的数据正确绑定到表单。

以上是如何在单个 Django 页面上处理多个表单?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn