If.-Значение в цикле for: добавление выбранного

#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" : "" }}>