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

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

Susan Sarandon
发布: 2024-11-30 03:49:18
原创
912 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板