Параметры рендеринга ModelChoiceField

Я хочу отобразить опции для поля ModelChoiceField:

{% for value, label in form.fields.event_type.choices %}
    <option value="{{ value }}"
            {% if form.fields.event_type.value|add:"" == value %}selected="selected"{% endif %}>
        {{ label }} -- {{ form.event_type.value }} .. {{ value }}
    </option>
{% endfor %}

Но это не работает: selected="selected" не установлено.

Вывод:

<option value="">
  --------- -- 2 .. 
</option>

<option value="1">
  OptionOne -- 2 .. 1
</option>

<option value="2">
  OptionTwo -- 2 .. 2
</option>

Это странно, так как вывод "2 ... 2" не вызвал "if" для включения selected.

Как это решить?

Я нашел решение. В "if" сравнивалось целое число со строкой, что не равно.

Это работает:

{% for value, label in form.fields.event_type.choices %}
<option value="{{ value }}"
    {% if form.event_type.value == value|stringformat:"i" %}selected="selected"{% endif %}>
    {{ label }} -- {{ form.event_type.value }} .. {{ value }}
</option>
{% endfor %}
Вернуться на верх