2012-06-18 3 views
0

부모가 하나 인 경우 최상위 카테고리를 표시하고 싶습니다. 탑 캣은 카테고리 항목을 포함하는 쿼리 세트입니다. 그러나 아래에 별표로 표시된 코드는 작동하지 않습니다. parent = 1이 (가) cat 개의 항목을 찾지 못했습니다. 왜 그런가?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' 객체 인 다음 is_root_node() 방법은 더 나은 방법입니다. '{% if cat.parent.pk == 1 %}'가 작동합니까? – Chewie

+0

ForeignKey 인 경우 cat.parent.id가 필요할 수도 있습니다. – Tisho

+0

그 트릭을 했어, 고마워! :-) @Chewie 당신이 답변으로 올리면 받아 들일 것입니다. – user1328021

답변

3

데이터베이스 내가 cat.parentmodel object이다라고 말하고 싶지만에서 TreeForeignKey입니다.

이 당신을 위해 작동한다 : 부모 노드의 ID가 반드시 1의 값을 가지고 있지 않는 한

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

그러나, 이것은 매우 hackish입니다.

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

굉장, 고맙습니다. – user1328021

관련 문제