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

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

Linda Hamilton
发布: 2024-11-28 19:43:12
原创
394 人浏览过

How to Handle Multiple Forms on a Single Page in Django?

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

在 Django 中,处理单个页面上的多个表单需要仔细考虑。处理单个表单的典型方法,如下例所示:

if request.method == 'POST':
    form = AuthorForm(request.POST,)
    if form.is_valid():
        form.save()
        # do something.
else:
    form = AuthorForm()
登录后复制

在处理多个表单时变得不够。为了正确解决这种情况,视图必须确定提交的是哪个表单。

区分表单提交

一种方法是为每个表单包含唯一的提交按钮值。通过解析 POST 数据,视图可以识别单击的提交按钮并处理相应的表单。

使用提交按钮值实现

例如,考虑两个带有提交按钮的名为 Expectedphraseform 和 Bannedphraseform 的表单分别命名为预期短语和禁止短语。以下代码片段说明了如何使用提交按钮值处理多个表单:

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')
登录后复制

通过利用唯一的提交按钮值,视图可以有效区分表单提交并相应地处理预期的表单。

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

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