在 Django 中处理单个页面上的多个表单
在单个 Django 模板上处理多个表单时,必须确定哪个表单正在提交以避免同时处理两个表格。主要挑战在于识别 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中文网其他相关文章!