Я хотел бы сделать два выбора с помощью Django (один множественный выбор, другой простой) и настроить его с помощью Materialize. Мне удалось закодировать следующее:
В моих формах.py
class ZonesForm(forms.Form):
zones_options = (
(1, 'Zone 1'),
(2, 'Zone 2'),
(3, 'Zone 3'),
(4, 'Zone 4')
)
zones = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=zones_options)
conn_options = (
(1, 'ABCDE'),
(2, 'FGHIJ'),
)
connections = forms.ChoiceField(choices=conn_options)
В моих зонах.html
{% block content %}
<div class="container">
<div class="row">
<form method="post">
<div class="input-field col s6">
<select multiple name="{{ form.zones.name }}">
{% for opt in form.zones %}
<option value="{{ opt.id }}">{{ opt.label }}</option>
{% endfor %}
</select>
<label>Zones</label>
</div>
<div class="input-field col s6">
<select name="form.connections.name">
{% for opt in form.connections %}
<option value="{{ opt.id }}">{{ opt }}</option>
{% endfor %}
</select>
<label>Connection</label>
</div>
</form>
</div>
</div>
{% endblock %}
Моя проблема: когда страница отображается, я получаю 4 флажка для первого выбора (как и ожидалось) и никаких имен для него (все параметры пустые). Для второго выбора я получаю 4 варианта (один пустой, один с «ABCDE», один пустой, один с «FGHIJ»).
Я подозреваю, что проблема связана с атрибутами. Я не получаю правильные значения для них (я пробовал opt.label, opt.text, opt.choices, opt.value, opt ...). Как я могу получить к ним доступ правильно?
Другой вопрос: есть ли хороший способ отладки через него? Я новичок в Django и веб-разработки в целом. Я попробовал import pdb; pdb.set_trace () для отладки, но я не смог пройти через точку останова для навигации по другим методам (я использую PyCharm).