您好,我有一个带有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,我希望可以在模板中完成。从代码中将很容易。
任何想法都欢迎。
最佳答案
我认为django-users中的这篇文章可能提供了一种方法(使用表单类中的访问器函数):
http://groups.google.com/group/django-users/msg/b60410692c7c60e2