我有一个脚本可以从其他网站导入表格中的数据。这些表的宽度在5到15列之间,任意长。
在获得原始数据后,我希望有机会确保我对列标题的猜测是正确的。所以我希望在顶部有一个列可以调用列的15个内容。这样我就可以快速纠正自动代码做出的任何糟糕决定。
因此,自动代码生成2个数组,第一个字符串:
possible_headers = [“one”,“two”,“three”......]
第二个索引到第一个数组中
possible_headers = [2,0,5 ...]
(列标题为“三”,然后是“一”,然后是“六”)
在我的模板中使用它们:
{% for likely_head in likely_headers %}
<th>
<select name="colHeader">
{% for poss_head in possible_headers %}
{% if forloop.counter0 == likely_headers.forloop.parentloop.counter0 %}
<option value="Col:{{forloop.counter0}}" selected>{{poss_head}}</option>
{% else %}
<option value="Col:{{forloop.counter0}}">{{poss_head}}</option>
{% endif %}
{% endfor %}
</select>
</th>
{% endfor %}
认为可能的标题将是选择输入中的选定/默认项目。问题是:
likely_headers.forloop.parentloop.counter0
不评估。 forloop.parentloop.counter0正常工作,但显然它不能用作列表的索引。
我是django的新手,所以我可能做错了,请你好!
答案 0 :(得分:0)
根据文档https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for
,如果你应该使用likely_headers.forloop.parentloop.counter0
,我不明白为什么你会使用forloop.parentloop.counter0
您也可以尝试通过使用{% with %}
标记
{% for likely_head in likely_headers %}
{% with forloop.counter0 as parent_counter %}
{% for poss_head in possible_headers %}
{{ parent_counter }}
{% endfor %}
{% endwith %}
{% endfor %}
我没有检查过它确实有效,但我认为应该。
此外,您可能正在尝试解决模板中无法解决的问题。您可以尝试使用标记,在视图中处理标题(使用库?)并返回应该呈现的标题列表。
答案 1 :(得分:0)
我认为我拥有的整数列表实际上是字符串[“1”,“5”,“3”]的列表,因此它们无法与for循环迭代器进行比较。创建一个真实的整体列表解决了这个问题。