Django:自定义单选按钮 Select 布局

Django: Custom Radio Select Layout

我正在尝试将我的收音机 select 控件的布局更改为以下形式:

<div class="oneitem">
     <label><input type="radio" class="radio" />
     <div>some extra content</div>
</div>
<div class="oneitem">
       .....
</div>

我正在尝试编写自己的渲染器:

class RandomRenderer(forms.RadioSelect.renderer):
    def render(self):
        ret = ''
        for w in self:
            ret += '<div class="oneitem">'
            ret += force_unicode(w)
            ret += '</div>'

        return mark_safe(ret)

我的问题:在行

for w in self:

如何访问标签字段和结果字段并添加'class="radio'"

除非我遗漏了什么,否则你不需要。添加 class 的唯一原因是用它做 CSS 技巧。

查看上面的渲染内容:

<div class="oneitem">
     <label><input type="radio" />Option's label here</label>
     <div>some extra content</div>
</div>

您的所有标签都可以使用 .oneitem label 作为目标,您的所有单选按钮都可以使用 .oneitem input 或使用 .oneitem input[type='radio'] 进行额外的属性检查。所以 class='radio' 选项是多余的。