Как отобразить категорию в выпадающем списке и скрыть, если она недоступна в Django?

#python #django #django-models #django-views #django-templates

#python #django #django-модели #django-просмотры #django-шаблоны

Вопрос:

Я работаю с раскрывающимся списком в Django, и я сделал это. Но основная проблема заключается в следующем, если у category нет subcategory выпадающего списка, то он должен быть скрыт, пожалуйста, дайте мне знать, как я могу это сделать.

вот мой html код при отображении category , subcategory и subchildcategory ..

    {% for i in cat %}
                            <li class="mega" id="hover-cls"><a href="javascript:void()" class="has-submenu" id="sm-15980957729343015-21" aria-haspopup="true" aria-controls="sm-15980957729343015-22" aria-expanded="false">{{i.cat_name}}
                                <span class="sub-arrow"></span></a>
                                <ul class="mega-menu full-mega-menu" id="sm-15980957729343015-22" role="group" aria-hidden="true" aria-labelledby="sm-15980957729343015-21" aria-expanded="false">
                                    <li>
                                        <div class="container">
                                            <div class="row">
                                                {% for j in i.subcategoryies.all|slice:"0:10" %}
                                                <div class="col mega-box">
                                                    <div class="link-section">
                                                        <div class="menu-title">
                                                            <h5>{{j.subcat_name}}<span class="according-menu"></span></h5>
                                                        </div>
                                                        <div class="menu-content" style="display: none;">
                                                            <ul>
                                                               {% for k in j.SubChildRelated.all %}
                                                                <li><a href="/subcategory/{{k.slug}}">{{k.name}}</a></li>
                                                                {% endfor %}
                                                            </ul>
                                                        </div>
                                                    </div>
                                                </div>
                                                {% endfor %}
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </li>
 {% endfor %}
  

здесь будет отображаться {% for j in i.subcategoryies.all|slice:"0:10" %} подкатегория, но если {{i.cat_name}} ее нет subcategory , то она не должна отображаться в виде выпадающего списка в главном меню, поэтому, пожалуйста, дайте мне знать, как я могу скрыть выпадающий список, если у категории нет подкатегории.

Ответ №1:

Вы можете использовать length фильтр для SubChildRelated и проверить, равно ли оно > 0.

Пример кода:

     {% for i in cat %}
                                <li class="mega" id="hover-cls"><a href="javascript:void()" class="has-submenu" id="sm-15980957729343015-21" aria-haspopup="true" aria-controls="sm-15980957729343015-22" aria-expanded="false">{{i.cat_name}}
                                    <span class="sub-arrow"></span></a>
                                    <ul class="mega-menu full-mega-menu" id="sm-15980957729343015-22" role="group" aria-hidden="true" aria-labelledby="sm-15980957729343015-21" aria-expanded="false">
                                        <li>
                                            <div class="container">
                                                <div class="row">
                                                    {% for j in i.subcategoryies.all|slice:"0:10" %}
                                                    <div class="col mega-box">
                                                        <div class="link-section">
                                                            <div class="menu-title">
                                                                <h5>{{j.subcat_name}}
                                       // MODIFIED LINE BELOW
                                                                    {% if j.SubChildRelated|length > 0 %}<span class="according-menu"></span>{% endif %}
                                                                </h5>
                                                            </div>
                                                            <div class="menu-content" style="display: none;">
                                                                <ul>
                                                                   {% for k in j.SubChildRelated.all %}
                                                                    <li><a href="/subcategory/{{k.slug}}">{{k.name}}</a></li>
                                                                    {% endfor %}
                                                                </ul>
                                                            </div>
                                                        </div>
                                                    </div>
                                                    {% endfor %}
                                                </div>
                                            </div>
                                        </li>
                                    </ul>
                                    {% endfor %}