Ответ 1
Внутри шаблона поле travels
является фактически экземпляром BoundField
(который является объектом Django, который связывает поле и его значение для рендеринга). Это означает, что свойства несколько отличаются.
Повторить выбор в виде кортежа:
{% for choice in form.travels.field.choices %}
{{ choice }} -
{% endfor %}
Produces: (1, 'One') - (2, 'Two') -
Для повторного итерации элементов в наборах по выбору отдельно:
{% for choice_id, choice_label in form.travels.field.choices %}
{{ choice_id }} = {{ choice_label }} <br/>
{% endfor %}
Produces: 1 = One
2 = Two
Надеюсь, что это поможет. Тем не менее, я не уверен в контексте, в котором вам нужно это делать; на поверхности, это не кажется очень джангоподобным. Вы можете обнаружить, что использование настраиваемого поля формы или настраиваемого тега шаблона дает вам более переносимую, повторно используемую реализацию, которая лучше поддерживает django, предназначенное для разделения между кодом представления и кодом шаблона. Конечно, YMMV, и вполне возможно, что подход прямой итерации подходит вам в этом случае.