Python Django,使用shell从表单集中的字段中获取首字母数据

Python Django,使用shell从表单集中的字段中获取首字母数据,python,django,shell,django-forms,formset,Python,Django,Shell,Django Forms,Formset,我在Django 1.11中使用formset,并在模板中呈现所有已完成的工作。 现在我想要python shell中的测试表单集。 因此,我制作了一个简单的表单,然后是一个带有首字母数据的表单集(2): >>> from django import forms >>> class my_formset(forms.Form): ... my_field_1=forms.IntegerField() ... my_field_2=forms.Int

我在Django 1.11中使用formset,并在模板中呈现所有已完成的工作。 现在我想要python shell中的测试表单集。 因此,我制作了一个简单的表单,然后是一个带有首字母数据的表单集(2):

>>> from django import forms
>>> class my_formset(forms.Form):
...    my_field_1=forms.IntegerField()
...    my_field_2=forms.IntegerField()
... 

>>> values=[{'my_field_1':10,'my_field_2':15}, {'my_field_1':84,'my_field_2':6}]

>>> values
   [{'my_field_2': 15, 'my_field_1': 10}, {'my_field_2': 6, 'my_field_1': 84}]
>>> my_data_fs.forms[0]
<my_formset bound=False, valid=Unknown, fields=(my_field_1;my_field_2)>
>>> my_data_fs.forms[0].fields
OrderedDict([('my_field_1', <django.forms.fields.IntegerField object at 0x7fdb688dd7b8>), ('my_field_2', <django.forms.fields.IntegerField object at 0x7fdb688dd710>)])
建筑模板集:

>>> from django.forms import formset_factory
>>> formset=formset_factory(my_formset,extra=0)
>>> my_data_fs=formset(initial=values)
结果表格集:

 >>> my_data_fs
 <django.forms.formsets.my_formsetFormSet object at 0x7fdb688dda90>
 >>> my_data_fs.forms
 [<my_formset bound=False, valid=Unknown, fields=(my_field_1;my_field_2)>,   <my_formset bound=False, valid=Unknown, fields=(my_field_1;my_field_2)>]

要获取我的姓名首字母数据,我必须做什么?

您所关注的可能是:

打印(我的数据表单[0]。初始)
这样,您就可以访问未绑定表单上的初始数据

查看绑定表单和未绑定表单上的字段之间的区别

从文档中可以清楚地看出,为了访问数据

打印(装订表格['subject']数据)

表单必须用data关键字初始化,换句话说就是bounded,但是如果您只想访问初始数据,您仍然可以像我在第一个代码示例中所做的那样在未绑定表单上进行初始化。

您确定value属性应该可用吗?hasattr(my_data_fs.forms[0].fields['my_field_1'],'value')==FalsePython将永远不会拒绝您,因此每当您遇到AttributeError时,请检查您要查找的内容是否确实存在:),干杯
>>> my_data_fs.forms[0].fields['my_field_1']
<django.forms.fields.IntegerField object at 0x7fdb688dd7b8>
>>> my_data_fs.forms[0].fields['my_field_1'].value
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'IntegerField' object has no attribute 'value'
>>> my_data_fs.forms[0].fields['my_field_1'].initial
>>>