Получение данных из аккордеонного меню начальной загрузки в view.py динамически в Django - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть меню «Аккордеон» на моем сайте, в котором есть категория, подкатегория и статья. Я хочу видеть, какую категорию, подкатегорию и статью щелкнул пользователь, и отфильтровать мою модель на основе этих условий, будучи статьей вподкатегория в категории.

Сначала я попытался поместить ссылки аккордеона в форму и назвал каждую ссылку, но это только испортило то, как это отображалось на экране.

внешний аккордеон:

<!-- COllapsible sidebar -->
<div class="container-fluid">
    <div class="row">


        <div class="col-md-3 col-xs-1 " id="sidebar">
            <div class="list-group panel">
                
                <a href="#menu1" class="list-group-item collapsed" data-toggle="collapse" data-parent="#sidebar" aria-expanded="false"><i class="fa fa-dashboard"></i> <span class="hidden-sm-down">Item 1</span> </a>
                <div class="collapse" id="menu1">
                    
                    <a href="#menu1sub1" class="list-group-item" data-toggle="collapse" aria-expanded="false">Subitem 1 </a>
                    <div class="collapse" id="menu1sub1">
                        <a href="#" class="list-group-item" data-parent="#menu1sub1">Subitem 1 a</a>
                        <a href="#" class="list-group-item" data-parent="#menu1sub1">Subitem 2 b</a>
                        
                        <a href="#menu1sub1sub1" class="list-group-item" data-toggle="collapse" aria-expanded="false">Subitem 3 c </a>
                        <div class="collapse" id="menu1sub1sub1">
                            <a href="#" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.1</a>
                            <a href="#" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.2</a>
                            
                            <a href="#menu1sub1sub1sub1" class="list-group-item" data-toggle="collapse" aria-expanded="false">Subitem 3 c.3 </a>
                            <div class="collapse" id="menu1sub1sub1sub1">
                                <a href="#" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.1</a>
                                <a href="#" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.2</a>
                            </div>
                        </div>
                        <a href="#" class="list-group-item" data-parent="#menu1sub1">Subitem 4 d</a>
                        <a href="#menu1sub1sub2" class="list-group-item" data-toggle="collapse"  aria-expanded="false">Subitem 5 e </a>
                        <div class="collapse" id="menu1sub1sub2">
                            <a href="#" class="list-group-item" data-parent="#menu1sub1sub2">Subitem 5 e.1</a>
                            <a href="#" class="list-group-item" data-parent="#menu1sub1sub2">Subitem 5 e.2</a>
                        </div>
                    </div>
                    <a href="#" class="list-group-item" data-parent="#menu1">Subitem 2</a>
                    <a href="#" class="list-group-item" data-parent="#menu1">Subitem 3</a>
                </div>
            </div>
        </div>
    </div>
</div>

Любое предложение или альтернативный маршрут, чтобы получить то, что я хочу, также приветствуется, все, что я хочу, - это возможность фильтровать свою базу данных из views.py на основе 3 условий,условия, являющиеся категорией, подкатегорией и статьей, которые являются иерархическими шагами в меню аккордеона.

Спасибо

1 Ответ

0 голосов
/ 04 апреля 2019

Предположительно, вы возвращаетесь к представлению при щелчке подэлемента, например, <a href="#" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.1</a> Если вы измените его на <a href="{% url 'show-item' item.id %}" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.1</a> (при условии, что у вас есть подходящий URL-адрес), он будет отображаться.

Если вам конкретно нужен пункт 1, подпункт 1 и т. Д. Выше, вы можете сделать

<a href="{% url 'view-name' item1 subitem1 item.id %}" class="list-group-item" data-parent="#menu1sub1sub1">Subitem 3 c.1</a>

Вам понадобится URL-адрес, например: path('myview/<str:item>/<str:subitem>/<int:item_id>/', views.MyView.as_view(), name="view-name")

...