2012-03-09 62 views
0

我有一個腳本,可以從其他網站的表中導入數據。桌子寬5至15列,任意長。向django的列標題添加默認值

當我得到原始數據後,我希望有機會確保我對列標題的猜測是正確的。所以我想在頂部列出可以調用列的15件事情。這樣我就可以快速糾正我的自動代碼做出的任何糟糕的決定。

所以自動代碼生成2個陣列,所述第一串:
possible_headers = [「一」,「二」,「三」 ...]
索引的第二成第一陣列
likely_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 %} 

有了這樣的想法ely標題將成爲選擇輸入中的選定/默認項目。問題是:

likely_headers.forloop.parentloop.counter0 

不評價。 forloop.parentloop.counter0正常工作,但顯然它不能用作列表中的索引。

我是django的新手,所以我可能做的都不對,請大家好!

回答

0

我不明白爲什麼你使用likely_headers.forloop.parentloop.counter0時,你應該根據文檔https://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 %} 

我的避風港」解決它使用forloop.parentloop.counter0檢查它確實有效,但我認爲它應該。

另外,您可能正在嘗試解決模板中不應解決的問題。您可以嘗試使用標籤,在視圖中處理標題(使用庫?)並僅返回應呈現的標題列表。

0

我認爲我的整數列表實際上是一個字符串列表[「1」,「5」,「3」],因此它們與for循環迭代器的比較失敗。創建一個真正的int列表解決了這個問題。