使用 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 %}