所以我有一个表格,我发布到Django应用程序。字段名称如下: field [section] [name] [attr] where section,name等可以包含任意数量的值。当我尝试访问POST请求中的数据时,这些是QueryDict中的确切键,因此要访问数据,我必须执行类似request.POST.get(' field [section] [name] [attr ]&#39)。为什么Django没有创建层次结构,所以我可以做类似
的事情Telephone Number
然后用
之类的东西从那里深入fields = request.POST.getlist('field')
似乎我必须使用正则表达式来处理表单数据。我错过了什么吗?
附加信息:我的字段表单元素定义为:
for section, value in fields:
for field_name, attributes in value:
所以POST数据来自:
input type="hidden" name="field[{{ section|underscore|lower }}][{{field.name }}][label]" value="{{ field.label }}"
input type="hidden" name="field[{{ section|underscore|lower }}][{{field.name }}][help]" value="{{ field.help }}"
input type="hidden" name="field[{{ section|underscore|lower }}][{{field.name }}][kind]" value="{{ field.kind }}"
例如使用request.POST.lists():
'field[section_name][field_name][label]': label_value
'field[section_name][field_name][help]': help_value
'field[section_name][field_name][kind]': kind_value
因此,如果我想检索标签值,例如,我必须:
('section[]', ['Qualys', 'Notifications'])
('field[qualys][test][label]', ['Test'])
('field[qualys][test][help]', ['My help text.'])
('field[qualys][test][kind]', ['string'])
由于事先不知道section_name和field_name,我必须使用正则表达式将它们拉出来。