У меня есть модель
class MyModel(models.Model):
name = models.CharField(max_length=80, unique=True)
parent = models.ForeignKey('self', null=True, blank=True)
Я хочу отобразить ModelChoiceField для этой модели, которая выглядит следующим образом:
<select name="mymodel" id="id_mymodel">
<option value="1" title="Value 1" class="">Value 1</option>
<option value="2" title="Value 2" class="Value 1">Value 2</option>
</select>
Различия между этим выводом и выводом по умолчанию для ModelChoiceField
заключаются в элементах title и class в теге OPTION. Они не существуют в выводе ModelChoiceField
по умолчанию.
Для моих целей:
- Предполагается, что элементом title является Имя опции.
- Элемент класса должен быть
self.parent.name
. ( это моя проблема )
Итак, в приведенном выше фрагменте HTML у Value 1 нет родителя, а у Value 2 родительский для значения 1.
Каков наилучший механизм изменения вывода HTML по умолчанию ModelChoiceField
?
РЕДАКТИРОВАТЬ: Я понимаю, как создать новый виджет для рендеринга HTML. Проблема заключается в том, как отобразить значение из базовой модели в каждом из параметров.