#python #html #django #django-templates
#python #HTML #django #django-шаблоны
Вопрос:
Мне нужно отобразить поле ввода выбора с фиксированной опцией
<select multiple>
<option > area</option>
<option > city</option>
<option > project</option>
<option > address</option>
<option > item3</option>
<option > item4</option>
<option > anotheritem</option>
<option > otheritem</option>
<option > lastitem</option>
<option > itemrandom</option>
</select>
И я передаю список в контексте, в котором будет элемент как (область, адрес, город) один или несколько или все.
Я хочу, чтобы опция была предварительно выбрана, если какое-либо из значений параметров присутствует в переданном списке контекста.
HTML-страница будет отображаться из представления django. Использование формы не является предпочтительным.
Комментарии:
1. Вы также передаете параметры из серверной части или они жестко запрограммированы, и в контексте будут передаваться только выбранные значения?
2. Они жестко запрограммированы.
Ответ №1:
<select multiple>
<option value="area" {% if "area" in selected_values %} selected {% endif %}> area</option>
<option value="city" {% if "city" in selected_values %} selected {% endif %}> city</option>
<option value="project" {% if "project" in selected_values %} selected {% endif %}> project</option>
<option value="address" {% if "address" in selected_values %} selected {% endif %}> address</option>
<option value="item3" {% if "item3" in selected_values %} selected {% endif %}> item3</option>
<option value="item4" {% if "item4" in selected_values %} selected {% endif %}> item4</option>
<option value="anotheritem" {% if "anotheritem" in selected_values %} selected {% endif %}> anotheritem</option>
<option value="otheritem" {% if "otheritem" in selected_values %} selected {% endif %}> otheritem</option>
<option value="lastitem" {% if "lastitem" in selected_values %} selected {% endif %}> lastitem</option>
<option value="itemrandom" {% if "itemrandom" in selected_values %} selected {% endif %}> itemrandom</option>
</select>
Приведенный выше фрагмент должен выполнить эту работу, было бы лучше, если бы вы передали список всех параметров также из серверной части.
В этом случае приведенный ниже фрагмент выполнит эту работу;
<select multiple>
{% for option in options %}
<option value="{{option}}" {% if option in selected_values %} selected {% endif %}> {{option}}</option>
{% endfor %}
</select>
Комментарии:
1.
{% if "area" in selected_values %}
selected_values будет списком, поэтому код не будет работать, поскольку в шаблоне django мы не можем проверить значение в списке, пожалуйста, поправьте меня, если я ошибаюсь.2. selected_values будет списком значений, которые уже выбраны, например; selected_values = [«area», «itemrandom», «city», «project»]