首页  >  文章  >  后端开发  >  如何在单个 Django 视图中处理多个表单?

如何在单个 Django 视图中处理多个表单?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-18 22:24:02712浏览

How to Handle Multiple Forms in a Single Django View?

Django 中的多个表单处理

在 Django 中,在单个页面上处理多个表单可能会带来挑战。让我们探索两种可行的方法来解决这种情况:

方法 1:单独的表单 URL

为每个表单分配不同的 URL。这会导致单独的视图函数处理提交。此方法的优点在于其简单性和代码组织。

方法 2:利用提交按钮值

如果您希望将表单保留在同一页面上,您可以根据提交按钮值来区分它们。下面的代码片段演示了这种方法:

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

在此代码中,bannedphrase和expectedphrase是提交按钮的名称,而bannedphraseform和expectedphraseform是相应的表单。通过检查请求的 POST 数据中是否存在这些按钮,您可以识别提交的是哪个表单并进行相应的处理。

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

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