Я очень плохо знаком с веб-разработкой и знаю, что это может быть глупым подходом, но не могу придумать лучшего способа сделать это. В views.py метод возвращает словарь с именем sniffer_aps
в шаблон в следующем формате:
sniffer_aps = {device1:[ap1, ap2], device2:[ap3, ap4, ap5], ......}
В шаблоне у меня есть выпадающий список, в котором перечислены все устройства (device1, device2, ......).
В другом поле я перечисляю все aps, принадлежащие устройству, выбранному в раскрывающемся списке. Я хочу динамически настраивать поле в соответствии с выбранным устройством, но на самом деле это не работает.
Код раскрывающегося списка:
<select onchange="refresh(this.value)" id="sniffer_list">
{% for sniffer_ap in sniffer_aps %}
<option value={{ sniffer_ap }}>{{ sniffer_ap.plug_ip }}</option>
{% endfor %}
</select>
Мой вопрос заключается в том, как я могу зациклить значение в поле, которое показывает aps, на основе параметра, выбранного в раскрывающемся списке?
Прямо сейчас мой подход состоит в том, чтобы использовать javascript для обнаружения события "onchange" в раскрывающемся списке и изменить значение поля, в котором перечислены все aps соответственно, затем просто получить значение поля и рассматривать его как ключ словарь.
function refresh(key) {
$('.router').attr('value') = key;
}
Для поля со списком aps проблема именно в этом. Я пытаюсь добиться чего-то вроде этого:
<select multiple="multiple" size="6">
{% for router in sniffer_aps[this.value] %}
<option class="router" value="">{{ router }}</option>
{% endfor %}
</select>
Пожалуйста, исправьте мой подход, или если кто-то может предоставить лучший способ. Большое спасибо.