Здравствуйте, у меня есть форма с ChoiceField, виджет которой настроен на RadioSelect.
Теперь, чтобы переопределить вывод html по умолчанию, нужно создать подкласс RadioFieldRenderer следующим образом:
class SimpleRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
def render(self):
"""Outputs widget without <ul> or <li> tags."""
return mark_safe(u'\n'.join([u'%s'
% force_unicode(w.tag()) for w in self]))
Теперь все хорошо, за исключением того, что я хотел бы иметь возможность отображать 1 переключатель за раз из шаблона. Что-то вроде этого:
{{ form.myfield.0 }}}
Или, возможно, повесив его на сам виджет:
{{ form.myfield.field.widget.0 }}
Что меня беспокоит, так это то, что RadioFieldRenderer уже реализует __get_item__
для получения только одного RadioInput. Проблема в том, что рендерер не содержит данных, как и виджет. И я бы очень не хотел возиться с Field и BoundField.
Мне нужно это для вставки html до/после каждой радиокнопки, и я бы хотел, чтобы это было сделано в шаблоне. Из кода это было бы легко.
Любые идеи приветствуются.