get_children 不工作。 get_descendants 确实如此。但我不能用那个
get_children not working. get_descendants does. But i can't use that
我目前正在使用 Django-cms 开发一个项目的导航栏。
我对这个框架和语言还很陌生,如果这是一个愚蠢的问题,我很抱歉。
这有双下拉菜单,可响应 Django-cms 管理界面中的用户更改。
哪个有效。有点。
问题是 get_children 不起作用(没有错误或其他东西,只是没有检测到 children,并且将 'should be dropdown button' 显示为非下拉版本),但是 get_descendants会。
但是如果我使用第二个下拉列表的内容将再次显示在第一个下拉列表中。
所以 get_children 将是完美的,因为它只会显示直接后代,而不是全部。
{% load cms_tags menu_tags sekizai_tags staticfiles%}
{% load menu_tags %}
{% for child in children %}
<!--non dropdown 1-->
{% if child.is_leaf_node %}
<li><a href="{{ child.get_absolute_url }}">{{child.get_menu_title }}</a></li>
{% endif %}
<!--dropdown 1-->
{% if not child.is_leaf_node or child.ancestor %}
<div class="dropdown">
<li><a href="{{ child.get_absolute_url }}" class="dropbtn">{{child.get_menu_title }}<b class="caret"></b></a></li>
<!-- dropdown 1 content-->
{% if child.get_descendants %}
<div class="dropdown-content">
{% for kid in child.get_descendants %}
<!--non dropdown 2-->
{% if kid.is_leaf_node %}
<li><a href="{{ kid.get_absolute_url }}">{{kid.get_menu_title }}</a></li>
{% endif %}
<!--dropdown 2 -->
{% if not child.is_leaf_node or child.ancestor %}
<li>
<a class="menu-has-sub">{{kid.get_menu_title }}<i class="fa fa-angle-down"></i></a>
<!-- dropdown 2 content-->
<ul class="sub-dropdown droppeddown">
{% for baby in kid.get_descendants %}
<li><a href="{{ baby.get_absolute_url }}">{{baby.get_menu_title }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</div>
{% endif %}
</div>
{% endif %}
{% endfor %}
所以我的问题是:为什么我不能使用 children
编辑:*为什么我不能使用 get_children。就像在功能中一样。
这里没有 child 劳动力。
Nvm 我修好了!
这种情况下的语法应该是 children 而不是 get_children。这很有趣,因为上面的编辑。
无论如何,这里有一个例子:
这不起作用:
{% for kid in child.get_children %}
这确实有效:
{% for kid in child.children%}
希望这会帮助其他人进行这场小小的斗争。
我目前正在使用 Django-cms 开发一个项目的导航栏。
我对这个框架和语言还很陌生,如果这是一个愚蠢的问题,我很抱歉。
这有双下拉菜单,可响应 Django-cms 管理界面中的用户更改。
哪个有效。有点。
问题是 get_children 不起作用(没有错误或其他东西,只是没有检测到 children,并且将 'should be dropdown button' 显示为非下拉版本),但是 get_descendants会。
但是如果我使用第二个下拉列表的内容将再次显示在第一个下拉列表中。
所以 get_children 将是完美的,因为它只会显示直接后代,而不是全部。
{% load cms_tags menu_tags sekizai_tags staticfiles%}
{% load menu_tags %}
{% for child in children %}
<!--non dropdown 1-->
{% if child.is_leaf_node %}
<li><a href="{{ child.get_absolute_url }}">{{child.get_menu_title }}</a></li>
{% endif %}
<!--dropdown 1-->
{% if not child.is_leaf_node or child.ancestor %}
<div class="dropdown">
<li><a href="{{ child.get_absolute_url }}" class="dropbtn">{{child.get_menu_title }}<b class="caret"></b></a></li>
<!-- dropdown 1 content-->
{% if child.get_descendants %}
<div class="dropdown-content">
{% for kid in child.get_descendants %}
<!--non dropdown 2-->
{% if kid.is_leaf_node %}
<li><a href="{{ kid.get_absolute_url }}">{{kid.get_menu_title }}</a></li>
{% endif %}
<!--dropdown 2 -->
{% if not child.is_leaf_node or child.ancestor %}
<li>
<a class="menu-has-sub">{{kid.get_menu_title }}<i class="fa fa-angle-down"></i></a>
<!-- dropdown 2 content-->
<ul class="sub-dropdown droppeddown">
{% for baby in kid.get_descendants %}
<li><a href="{{ baby.get_absolute_url }}">{{baby.get_menu_title }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</div>
{% endif %}
</div>
{% endif %}
{% endfor %}
所以我的问题是:为什么我不能使用 children
编辑:*为什么我不能使用 get_children。就像在功能中一样。
这里没有 child 劳动力。
Nvm 我修好了!
这种情况下的语法应该是 children 而不是 get_children。这很有趣,因为上面的编辑。
无论如何,这里有一个例子:
这不起作用:
{% for kid in child.get_children %}
这确实有效:
{% for kid in child.children%}
希望这会帮助其他人进行这场小小的斗争。