У меня есть ModelForm, который я отображаю в шаблоне с помощью django-widget-tweaks. У меня есть выбор ChoiceField, который выводит что-то вроде этого:
<select>
<option value="object.id">object.name</option>
</select>
Но для целей манипулирования Javascript мне нужно следующее:
<select>
<option value="object.id" class="object.otherPropery">object.name</option>
</select>
django-widget-tweaks имеет функцию add_class, но только добавляет класс в поле выбора, а не содержащиеся в нем параметры.
Я также попытался свернуть свое собственное поле выбора:
<select>
{% for object in form.object_field %}
<option value="{{ object.id }}" class="{{ object.otherProperty }}">{{ object.name }}</option>
{% endfor %}
</select>
Но когда форма не проходит проверку и возвращаются ошибки, параметр, выбранный пользователем ранее, сбрасывается до значения по умолчанию (первого) (это действительно происходит с django-widget-tweaks).
Я также пытался переопределить поля render_option
и render_options
виджета Select, но дополнительные свойства объекта не передаются этим функциям.
Я чувствую, что есть простое решение для того, что я пытаюсь сделать. Любая помощь приветствуется!