Настройка RadioSelect

Здравствуйте, у меня есть форма с 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 до/после каждой радиокнопки, и я бы хотел, чтобы это было сделано в шаблоне. Из кода это было бы легко.

Любые идеи приветствуются.


person Kugel    schedule 03.11.2009    source источник


Ответы (1)


Я думаю, что этот пост в django-users может предоставить способ сделать это (с функцией доступа в классе формы): http://groups.google.com/group/django-users/msg/b60410692c7c60e2

person msanders    schedule 05.02.2010
comment
Я попробую это, когда у меня будет шанс. - person Kugel; 06.02.2010