python - Django Forms - 如何使用前缀参数

标签 python html django forms

假设我有这样的表格:

class GeneralForm(forms.Form):
    field1 = forms.IntegerField(required=False)
    field2 = forms. IntegerField(required=False)

我想在一个表单标签内的页面上显示两次,每次使用不同的前缀,例如:

rest of page ...
<form ..>
GeneralForm(data,prefix="form1").as_table()
GeneralForm(data,prefix="form2").as_table()
<input type="submit" />
</form>
rest of page ...

当用户提交这个时,我如何将提交的表单重新分成两个单独的表单进行验证,然后重新显示?

This was the only documentation我能找到,而且很饿。

最佳答案

您像往常一样处理每个表单,确保创建的实例与最初用于生成表单的实例具有相同的前缀。

这是使用您提供的表格的一个稍微尴尬的示例,因为我不知道确切的用例是什么:

def some_view(request):
    if request.method == 'POST':
        form1 = GeneralForm(request.POST, prefix='form1')
        form2 = GeneralForm(request.POST, prefix='form2')
        if all([form1.is_valid(), form2.is_valid()]):
            pass # Do stuff with the forms
    else:
        form1 = GeneralForm(prefix='form1')
        form2 = GeneralForm(prefix='form2')
    return render_to_response('some_template.html', {
        'form1': form1,
        'form2': form2,
    })

这里有一些真实的示例代码,演示了使用前缀处理表单:

http://collingrady.wordpress.com/2008/02/18/editing-multiple-objects-in-django-with-newforms/

关于python - Django Forms - 如何使用前缀参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/226510/

相关文章:

javascript - div 上的下拉子菜单

javascript - 当页面自动对焦时使用 javascript 滚动页面

python - 如何将图像从其路径保存到 FileField?

django - docker-为开发和生产组合相同的配置,但仅在开发中启用主机和容器之间的代码共享

python - 如何在 Pytorch 中使用 CUDA 流?

python - 将 Python 日志记录与扭曲一起使用

javascript - 如何通过 javascript 或 jQuery 更改一个元素在另一个元素中的位置?

ruby - Sinatra Web 管理员(如 Django 管理员)

python - Jupyter 笔记本 : split screen vertically (i. e。水平添加单元格)

python - 在 python 中提取 OpenCV 的 Canny 边缘检测的有序 xy 坐标