Python Django-一个视图中同一表单类的多个实例
在Django表单的上下文中,我看到了许多关于在同一页面上处理不同类型的Python Django-一个视图中同一表单类的多个实例,python,django,forms,post,django-forms,Python,Django,Forms,Post,Django Forms,在Django表单的上下文中,我看到了许多关于在同一页面上处理不同类型的表单的讨论(例如,在同一页面上处理AForm和BForm),但我正在试图弄清楚如何在一个页面上处理同一表单类的多个实例 我可以很好地显示表单,但是我不知道当表单是POSTed时如何处理它们 我也尝试过使用Formsets,但也有同样的问题(可以显示,但不知道如何处理POST) 所以我的问题是:假设我在一个页面上显示了几个相同的表单类的实例。提交这些表格时,我将如何处理POST数据 编辑: formset的问题是,我有一个自定
表单
的讨论(例如,在同一页面上处理AForm
和BForm
),但我正在试图弄清楚如何在一个页面上处理同一表单
类的多个实例
我可以很好地显示表单,但是我不知道当表单是POST
ed时如何处理它们
我也尝试过使用Formset
s,但也有同样的问题(可以显示,但不知道如何处理POST
)
所以我的问题是:假设我在一个页面上显示了几个相同的表单类的实例。提交这些表格时,我将如何处理POST
数据
编辑:
formset
的问题是,我有一个自定义表单,并且发现很难使用formset
来处理POST
数据
编辑2-提供@NeverWinner回复的更多详细信息
这是我的表格课:
class QuestionForm(forms.Form):
def __init__(self, question, data=None, *args, **kwargs):
super(QuestionForm, self).__init__(*args, **kwargs)
choice_list = [x for x in question.get_answers_list()]
self.fields['answers'] = forms.ChoiceField(choices=choice_list,
widget=RadioSelect)
self.fields['answers'].label = question.content
我正在创建不同的表单,前缀如下:form=QuestionForm(question=question,prefix=prefix)
然后,像这样处理POST数据:form=QuestionForm(data=request.POST,question=question,prefix=prefix)
但是,表单不使用上述方法绑定:(您可以使用参数在视图中初始化多个表单:
mother = PersonForm(request.POST, prefix="mother")
father = PersonForm(request.POST, prefix="father")
return render(request, 'some_template.html', {
'mother': mother,
'father': father,
})
我很感谢您的回答!这也正是我的想法,但我无法用这种方法绑定表单。我将在问题中添加更多关于我的表单和绑定逻辑的细节,如果您能提供一些反馈,那就太好了。@JohnPersonForm(request.POST,prefix=“mother”)
应该可以正常工作。如何在模板中呈现表单?这是模板中的呈现代码。我还在OPquestions
中添加了更多关于form
子类的详细信息。
是表单列表:{%forquestions%}{{question.as\p}{%endfor%}
@John在表单的\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
中的一个小评论我想它应该是超级(问题表单,self.\uuuuuuu!