使用 django for 循环显示用户数据
display user data using django for loop
经过大量的时间和努力,我有了一个菜单 header,用户可以在其中 select 他们的详细信息,这些信息将出现在他们的菜单中 header。
如果用户 selected 显示超过 20 个菜单项(3 个菜单项总是显示,所以我已经将菜单设置为 3 列将分栏符放在循环 17) 上。
如果用户select编辑的菜单项少于 17 个,菜单将显示为 2 列,如下所示:
如果用户select编辑了超过 17 个菜单项,菜单将显示在 3 列中。
当我尝试在循环 17 处放置分栏符时,正好有 17 个菜单项,显示第 3 列,但我只想要 2 列。只有当菜单选项 超过 17 个时才应显示 3 列 selected。
这是我当前的代码:
这就是我想要实现的目标:
我已竭尽全力解决此问题,但无法解决。我在某个地方犯了一个错误,但我就是看不到它(我很尴尬,我必须 post 这个问题才能解决我的问题)。
我不确定是我的 HTML 代码放置不正确还是我的 django 循环校准不正确。
这是我的代码:
<div class="mega-menu-content">
<div class="container">
<div class="row equal-height">
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
<!-- a Details Pages -->
{# 1st Menu Details are always available. #}
<li>
<a href="{% url 'a_details' %}">
{% trans "1st Menu" %}
<span class="badge rounded-2x badge-blue">
{{ a_details_count }}
</span>
</a>
</li>
<!-- End a Details Pages -->
<!-- b Details Pages -->
{# 2nd Menu Details are always available. #}
<li>
<a href="{% url 'b_details' %}">
{% trans "2nd Menu" %}
<span class="badge rounded-2x badge-blue">
{{ b_details_count }}
</span>
</a>
</li>
<!-- End b Details Pages -->
<!-- c Details Pages -->
{# 3rd menu Details are always available. #}
<li>
<a href="{% url 'c_details' %}">
{% trans "3rd Menu" %}
<span class="badge rounded-2x badge-blue">
{{ c_details_count }}
</span>
</a>
</li>
<!-- End c Details Pages -->
<!-- remaining selected Menu Details Pages -->
{# Only display the Menu Details that the user has selected to appear. #}
{% for entry, count, view_link in test_menu %}
<li>
<a href="{{ view_link }}">
{{ entry.label }}
<span class="badge rounded-2x badge-blue">
{{ count }}
</span>
</a>
</li>
{% ifequal forloop.counter 7 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
{% ifequal forloop.counter 17 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
{% if forloop.last %}
</ul>
</div>
</div>
</div>
</div>
希望有人能指出我的错误
替换为:
{% ifequal forloop.counter 17 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
与:
{% ifequal forloop.counter 17 %}
{% if not forloop.last %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endif %}
{% endifequal %}
经过大量的时间和努力,我有了一个菜单 header,用户可以在其中 select 他们的详细信息,这些信息将出现在他们的菜单中 header。
如果用户 selected 显示超过 20 个菜单项(3 个菜单项总是显示,所以我已经将菜单设置为 3 列将分栏符放在循环 17) 上。
如果用户select编辑的菜单项少于 17 个,菜单将显示为 2 列,如下所示:
如果用户select编辑了超过 17 个菜单项,菜单将显示在 3 列中。
当我尝试在循环 17 处放置分栏符时,正好有 17 个菜单项,显示第 3 列,但我只想要 2 列。只有当菜单选项 超过 17 个时才应显示 3 列 selected。
这是我当前的代码:
这就是我想要实现的目标:
我已竭尽全力解决此问题,但无法解决。我在某个地方犯了一个错误,但我就是看不到它(我很尴尬,我必须 post 这个问题才能解决我的问题)。
我不确定是我的 HTML 代码放置不正确还是我的 django 循环校准不正确。
这是我的代码:
<div class="mega-menu-content">
<div class="container">
<div class="row equal-height">
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
<!-- a Details Pages -->
{# 1st Menu Details are always available. #}
<li>
<a href="{% url 'a_details' %}">
{% trans "1st Menu" %}
<span class="badge rounded-2x badge-blue">
{{ a_details_count }}
</span>
</a>
</li>
<!-- End a Details Pages -->
<!-- b Details Pages -->
{# 2nd Menu Details are always available. #}
<li>
<a href="{% url 'b_details' %}">
{% trans "2nd Menu" %}
<span class="badge rounded-2x badge-blue">
{{ b_details_count }}
</span>
</a>
</li>
<!-- End b Details Pages -->
<!-- c Details Pages -->
{# 3rd menu Details are always available. #}
<li>
<a href="{% url 'c_details' %}">
{% trans "3rd Menu" %}
<span class="badge rounded-2x badge-blue">
{{ c_details_count }}
</span>
</a>
</li>
<!-- End c Details Pages -->
<!-- remaining selected Menu Details Pages -->
{# Only display the Menu Details that the user has selected to appear. #}
{% for entry, count, view_link in test_menu %}
<li>
<a href="{{ view_link }}">
{{ entry.label }}
<span class="badge rounded-2x badge-blue">
{{ count }}
</span>
</a>
</li>
{% ifequal forloop.counter 7 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
{% ifequal forloop.counter 17 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
{% if forloop.last %}
</ul>
</div>
</div>
</div>
</div>
希望有人能指出我的错误
替换为:
{% ifequal forloop.counter 17 %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endifequal %}
与:
{% ifequal forloop.counter 17 %}
{% if not forloop.last %}
</ul>
</div>
<div class="{% if selected_menu_entries|replace_comma_with_linespace|wordcount > 18 %}col-md-4{% else %}col-md-6{% endif %} equal-height-in">
<ul class="list-unstyled equal-height-list">
{% endif %}
{% endifequal %}