4

こんにちは、私はずっと探していましたが、これに対する答えが見つかりません。私は python/django の使用経験が 3 か月しかないので、ダミーの質問で失礼します。django mptt を使用して、単純なネストされたセット ナビゲーションを表示しています。

<ul class="root">
{% recursetree nodes %}
    <li>
        {{ node.name }}
        {% if not node.is_leaf_node %}
            <ul class="children">
                {{ children }}
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

これは問題なく動作しますが、すべてではなく、選択したカテゴリ (スラッグに基づく) の子のみを表示したいと考えています。何か案は ???


私は最終的にこのようにしました:

{% recursetree nodes %}
    <li>
      <a href='/{{ node.get_absolute_url}}'>{{ node.name }}</a>
    </li>
       {% if not node.is_leaf.node %}
                {% for c in child %}
                        {% if c in node.get_children  %}
                                {% if forloop.first %}
                                   <ul class="children">
                                         {{ children }}
                                            </ul>
                                {% endif %}
                        {% endif %}
                {% endfor %}
        {% endif %}   



{% endrecursetree %}          

ビューで

category = get_object_or_404(Category, slug=slug)
child = category.get_children()
if not child : 
      child = category.get_siblings() 

しかし、それはハックです。誰かがより良い考えを持っていますか?

4

3 に答える 3

0
{% recursetree nodes %}
  <li>
      <a href="/category/{{ node.get_absolute_url }}">{{ node.name }}</a>                           
       {% if node.name == category.name %}
         <ul>
            {{ children }}
         </ul>
       {% endif %}
  <li>
{% endrecursetree %}
于 2012-11-21T17:29:03.957 に答える
0

現在のノードに関する情報を送信する必要があり、それは簡単なifステートメントです。

ノード情報を普遍的に送信する方法については、Django でこれを行う方法がいくつかありますが、どれも完璧ではありません。私の好ましい方法はコンテキストプロセッサです: http://docs.djangoproject.com/en/1.3/ref/templates/api/#writing-your-own-context-processors

于 2011-05-18T04:39:37.600 に答える