Как я могу использовать django url внутри тега option в выпадающем меню?
На данный момент я смог использовать цикл for, который перечисляет все соответствующие URL, используя следующее:
<H2> Your Visuals are located here: </H2>
<ul class="main-navigation"> {% for i,j in files%}
<H3>{{j}}</H3>
<ul>
<li><a href="{% url 'visualisation:network_multi_graphs' %}?database={{i}}">Multiple Graphs</a></li>
<li><a href="{% url 'visualisation:customer_locations' %}?database={{i}}">Customer Locations</a></li>
<li><a href="{% url 'visualisation:product_quantity' %}?database={{i}}">Product Quantity</a></li>
<li><a href="{% url 'visualisation:demand_time' %}?database={{i}}">Demand over Time Period</a></li>
</ul>
{% endfor %}
</ul>
Я пытался реализовать выпадающее меню для всех ссылок, используя приведенный ниже код с одной ссылкой в качестве теста, но ничего не отображается.
<label>values in z<label>
<select id="the-id">
{% for i, j in files %}
<option value=" href="{% url 'visualisation:customer_locations' %}?database={{i}}">Customer Locations</option>
{% endfor %}
</select>
Кто-нибудь знает, где я ошибаюсь?
Редактирование с новым решением, которое не работает:
<style>
/* Dropdown Button */
.dropbtn {
background-color: #04AA6D;
color: white;
padding: 16px;
font-size: 16px;
border: none;
}
/* The container <div> - needed to position the dropdown content */
.dropdown {
position: relative;
display: inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #ddd;}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}
/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
<div class="dropdown">
<ul id="buttons"> {% for i,j in network_files %}
<div class="main-navigation">
<H2> Your Visuals are located here: </H2>
<H3>{{j}}</H3>
<ul>
<li><a href="{% url 'data_visualisation:network_multi_graphs' %}?database={{i}}">Multiple Graphs</a></li>
<li><a href="{% url 'data_visualisation:customer_locations' %}?database={{i}}">Customer Locations</a></li>
<li><a href="{% url 'data_visualisation:product_quantity' %}?database={{i}}">Product Quantity</a></li>
<li><a href="{% url 'data_visualisation:demand_time' %}?database={{i}}">Demand over Time Period</a></li>
</ul>
{% endfor %}
</div>
</div>
Вам понадобится немного JavaScript, который не является моей сильной стороной. Но что-то вроде этого (полагаясь на, возможно, некачественную память)
<select name="nextview" onchange="javascript:handleNextView(this)">
<option value="{% url ... %}">Multi Graphs</option>
<option value="{% url ... %}">Customer Locations</option>
<!-- etc ... -->
</select>
<script type="text/javascript">
function handleNextView(el){
window.location.assign( el.value ); /* redirect on select */
}
</script>