3

您好,我有一个带有 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,我希望它在模板中完成。从代码来看,这很容易。

欢迎任何想法。

4

1 回答 1

0

我认为 django-users 中的这篇文章可能会提供一种方法(在表单类中使用访问器函数): http ://groups.google.com/group/django-users/msg/b60410692c7c60e2

于 2010-02-05T11:59:12.403 回答