我在访问表单集中的表单数据时遇到了问题。我附上了代码:
####FORM
class ActionTypeForm(forms.Form):
action_name = models.CharField(max_length=20)
description = models.CharField(max_length=250, blank=True, null=True)
####VIEW
dataset = request.POST
ActionTypeFormSet = formset_factory(ActionTypeForm)
formset = ActionTypeFormSet(dataset)
if formset.is_valid():
for form in formset.cleaned_data: #I ALSO TESETED formset.forms
customer.create_actiontype(form['action_name'], form['description'])错误是我无法获取表单‘’action_name‘。formset.is_valid()返回True
错误
异常类型: KeyError
异常值:'action_name‘
发布数据
form-0-action_name u'a‘
表单2-描述u‘’sadsa‘
form-0-描述u'a‘
表单-MAX_NUM_表单u'‘
表单1-描述u‘’asd‘
form-TOTAL_FORMS u'3‘
form-1-action_name u‘’as‘
form-INITIAL_FORMS u'0‘
csrfmiddlewaretoken中间件令牌u'c4fa9ddb4ec69ac639d7801eb14979f2‘
表单2-action_name u‘’asda‘
发布于 2011-12-25 15:55:13
主要的问题是你有一个空白的表单。您在表单类定义中使用了模型字段,而django的表单框架不知道该如何处理。Django模型!= django表单。
表单集正在验证并返回空表单,这些表单当然没有表单域。
您应该使用具有有效表单域的表单创建Formset%s,或者使用Model%s创建ModelFormset%s。
cleaned_data,但我猜它们确实返回了所有表单的cleaned_datas列表,这意味着您的代码问题就是上面提到的。发布于 2011-12-25 17:57:25
表单集将其所有关联的表单存储在self.forms中,迭代它将返回表单的迭代器iter(self.forms)。
您的POST数据看起来很好,因此您可以这样做:
if formset.is_valid():
for form in formset:
customer.create_actiontype(form.action_name, form.description)https://stackoverflow.com/questions/8628507
复制相似问题