在django中为列标题添加默认值



我有一个脚本,可以从其他网站导入表中的数据。这些表格的宽度在5到15列之间,长度任意。

在我得到原始数据后,我希望有机会确保我对列标题的猜测是正确的。所以我想在顶部列出一个列可以调用的15个内容。这样,我就可以快速更正由我的自动代码做出的任何糟糕的决定。

因此,自动代码生成两个数组,第一个字符串:
possible_headers=["一"、"二"、"三"…]
第一个数组中的第二个索引
likely_headers=[2,0,5…]
(列标题将是"三"、"一"one_answers"六")

在我的模板中这样使用它们:

{% 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.pantloop.counter0工作正常,但显然它不能用作列表的索引。

我是django的新手,所以我可能做错了,请友善!

我不明白为什么要使用likely_headers.forloop.parentloop.counter0,而根据文档,应该使用forloop.parentloop.counter0https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for

你也可以尝试通过用{% 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"、"5"、"3"],所以它们无法与for循环迭代器进行比较。创建一个真正的int列表解决了这个问题。

最新更新