2017-07-17 67 views
0

DB數據:Django的模板的循環,最後的項目值不爲空

pk,text 
2|null 
3|foo 
4|null 
5|bar 
6|null 

我打算迴路給定的數據,但我只想遍歷其中text列的值是NOT null項目。此外,我需要知道哪個是最後值,其中text列是NOT null

這是我預期的觀點,一旦模板已經呈現:

3 foo 
5 bar *last* 

在Python中,這種由列表理解的,如果條件實現,如:

[x for x in my_loop if x != None] 

在渲染這個views.py由於該數據在模板的其餘部分中的使用方式也極爲不便,而且這也會吞噬太多不必要的內存。

但是,在django模板中渲染時可以這樣做嗎?

非常感謝!

+0

您可以迭代反向,並且具有「文本」值NOT NULL的第一個項可以訪問它的_index_或任何您想要的對象。希望它回答你的問題:) – Mirza715

+0

可能的,但是... 這將需要一個變量來標記「文本」值存在... – Sazzy

回答

0

這應該有效。

{% for item in items %} 
    {% if item.text %} 
    <span>{{ item.text }}</span> 
    {% endif %} 
{% endfor %} 
+0

謝謝,這就是我目前所做的。但是,如何捕獲該循環中_text_不爲null的最後一項? – Sazzy

+0

查看「for」部分下的鏈接部分。特別是'forloop.last'。你可以用'和'子句把你的'{%if%}'語句加入。 https://docs.djangoproject.com/zh/dev/ref/templates/builtins/#for –

+0

這樣,_pk:6_將打印出來。我需要將_pk:5_標記爲最後一項,而不是_pk:6_。還有什麼想法? – Sazzy