2012-06-18 37 views
0

如果父級等於1,我想顯示我的頂級類別。 topcats是一個包含類別項的查詢集。但下面演示的代碼不起作用。它沒有找到任何cat項目parent = 1。任何想法爲什麼?爲什麼Django不能在模板中識別這個

{% for cat in topcats %} 
    **{% if cat.parent == 1 %}** 
     <a href ="/x/{{cat.id}}/dir/"><h3>{{ cat.category }}</a></h3> 
      {% for each in topcats %} 
       {% if each.parent == cat.id %} 
        <h5>{{ each }}</h5> 
       {% endif %} 
      {% endfor %} 
    {% endif %} 
{% endfor %} 

注:父是在數據庫

+1

我會說'cat.parent'是'django.db.models.Model'對象。 '{%if cat.parent.pk == 1%}'是否有效? – Chewie

+0

也許你需要cat.parent.id如果它是一個ForeignKey? – Tisho

+0

這樣做,謝謝! :-) @ Chewie如果你發佈答案我會接受。 – user1328021

回答

3

我想說cat.parentmodel object一個TreeForeignKey

這應該爲你工作:

{% if cat.parent.pk == 1 %} 

然而,這是相當hackish的,作爲父節點的ID不一定有1值。該is_root_node()方法是一種更好的方法:

{% if cat.parent.is_root_node %} 
+0

太棒了,謝謝@chewie。 – user1328021

相關問題