[英]How to iterate a dynamic variable in a Django template
有人对此提出了一些稍微相关的问题,但是答案并没有真正帮助我。 当我尝试实现在其他地方( 自定义模板 )建议的潜在好提示时,我没有得到期望的结果。
在我的模板中,我要遍历字典中的一组键。 字典本身源自提交Django表单集。
XML模板代码段:(我正在渲染到XML文件)
{% for x in range %}
<file type="{{ form-'x'-type }}" viewpath="{{ form-'x'-file }}"/>
{% endfor %}
上述显然不起作用。 迭代有效。 range
变量是与从视图传递到XML模板的range(int(request.POST['form-TOTAL_FORM']))
相对应的python参数。
在模板的每次迭代中,我都需要{{ form-0-type }}
, {{ form-1-type}}
, {{ form-2-type }}
等。
我怎么做? 如果确实需要为此使用自定义过滤器,该怎么做?
我希望这个问题(和答案)可以帮助许多人遇到同样的问题。
谢谢。
编辑:(已发布词典)
<QueryDict:
{
u'form-MAX_NUM_FORMS': [u'1000'],
u'form-INITIAL_FORMS': [u'0'],
u'form-TOTAL_FORMS': [u'2'],
u'form-0-type': [u'1'],
u'form-1-type': [u'2'],
u'csrfmiddlewaretoken': [u'LpkjdDcqRCL4VPM0SAuU7efgZjgeubTN']
}>
附加说明:在第二个视图中,我查找外键的值,并将值放在另一个字典中,然后将其发送到XML模板。
这样做的代码片段:
detailed_request = {}
for x in range(0, int(request.POST['form-TOTAL_FORMS'])):
detailed_request['form-'+str(x)+'-type'] = Upload_Type.objects.get(pk=request.POST['form-'+ str(x)+'-type'])
detailed_request['form-'+str(x)+'-file'] = request.FILES['form-'+str(x)+'-file']
上面是一个工作片段。 当我跟踪detailed_request
,我拥有所需的所有信息:
{
'form-1-type': <Upload_Type: malib>,
'form-0-type': <Upload_Type: axf_file>
}
万一有人遇到同样的问题,我实际上改变了我做事的方式。
我不迭代模板中的表单集。 相反,我在这里实现了Paolo Bergantino的解决方案: 使用Ajax将表单动态添加到Django表单集中
然后在我看来,我只是从request.FILES
获取所需的每个数据。
我希望这对使用相同错误方法开始的任何人有所帮助。
您可以通过以下变量访问for循环帮助器变量
forloop.counter The current iteration of the loop (1-indexed)
forloop.counter0 The current iteration of the loop (0-indexed)
有关更多信息, 请访问: https : //docs.djangoproject.com/en/dev/ref/templates/builtins/#for
所以你会...
{{ form }}-{{ forloop.counter }}-{{ type }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.