【发布时间】:2018-12-04 16:44:58
【问题描述】:
在 Django Forms 的上下文中,我看到很多关于在同一页面上处理不同类型的 forms 的讨论(例如同一页面上的 AForm 和 BForm),但我正在尝试了解如何在一个页面上处理同一 form 类的多个实例。
我可以正常显示表单,但是当表单为POSTed 时我不知道如何处理它们。
我也尝试过使用Formsets,并且遇到了同样的问题(可以显示,但不知道如何处理POST)。
所以这是我的问题:假设我在一个页面上显示 same Form 类的几个实例。提交这些表单时,我将如何处理POST 数据?
编辑:
formset 的问题是我有一个自定义表单,并且发现很难使用formset 处理POST 数据。
编辑 2 - 根据@neverwalkaloner 的回复提供更多详细信息。
这是我的表单类:
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)
但是,表单不与上述方法绑定:(
【问题讨论】:
标签: python django forms post django-forms