首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问django表单集中的表单数据

问如何访问django表单集中的表单数据
EN

Stack Overflow用户
提问于 2011-12-25 14:30:33
回答 2查看 4.1K关注 0票数 1

我在访问表单集中的表单数据时遇到了问题。我附上了代码:

代码语言:javascript
复制
####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‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-25 15:55:13

主要的问题是你有一个空白的表单。您在表单类定义中使用了模型字段,而django的表单框架不知道该如何处理。Django模型!= django表单。

表单集正在验证并返回空表单,这些表单当然没有表单域。

您应该使用具有有效表单域的表单创建Formset%s,或者使用Model%s创建ModelFormset%s。

  • 更新:我最初认为表单集没有cleaned_data,但我猜它们确实返回了所有表单的cleaned_datas列表,这意味着您的代码问题就是上面提到的。
票数 3
EN

Stack Overflow用户

发布于 2011-12-25 17:57:25

表单集将其所有关联的表单存储在self.forms中,迭代它将返回表单的迭代器iter(self.forms)。

您的POST数据看起来很好,因此您可以这样做:

代码语言:javascript
复制
if formset.is_valid():
    for form in formset: 
        customer.create_actiontype(form.action_name, form.description)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8628507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档