#html #django #for-loop #if-statement
#HTML #django #цикл for #if-оператор
Вопрос:
Хочу добавить атрибут «выбранный» в это поле выбора в моем Django-проекте:
<form id="formselect" method="post">
{% csrf_token %}
<select name="position_select" id="position_select">
<option value="0">all positions</option>
{% for position in position_options %}
<option value="{{ position.id }}"
{% if form.position.value == position.id.0 %} selected{% endif %}>
Position: {{ position.position_order }}
</option>
{% endfor %}
</select>
Результатом использования этого метода if является то, что теперь каждый параметр помечается как выбранный в выходных данных этого HTML. Есть ли лучший способ обработать этот if-оператор в цикле for?
Я отправляю эту форму при каждом нажатии с:
$("#position_select").on("change", function() {
document.getElementById("formselect").submit();
});
Комментарии:
1. Если вы говорите, что все выбраны, значит, ваша форма условия.значение позиции == position.id.0 всегда истинно. Это означает, что ваше условие if необходимо обновить.
2. Не могли бы вы уточнить, что вы подразумеваете под «обновленным»?
3. Я имею в виду, почему ваше утверждение if истинно для каждой итерации?
Ответ №1:
Вы можете попробовать что-то вроде этого:
{% for position in position_options %}
{% if form.position.value == position.id.0 %}
<option value="{{ position.id }}" selected>
{% else %}
<option value="{{ position.id }}" selected>
{% endif %}
Или:
<option value="{{ position.id }}" {{ form.position.value == position.id.0 ? "selected" : "" }}>