こんにちは、ウィジェットが RadioSelect に設定されている ChoiceField のフォームがあります。
デフォルトの 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__
1 つの RadioInput を取得するように実装されていることは、私を悩ませています。問題は、レンダラーにもウィジェットにもデータが含まれていないことです。そして、Field と BoundField をいじるのは本当に嫌です。
各ラジオボタンの前後にhtmlを挿入するにはこれが必要で、テンプレートで実行したいと思います。コードからは簡単です。
どんなアイデアでも大歓迎です。