Django:自定义广播选择布局

时间:2015-02-14 06:52:51

标签: django django-forms

我正在尝试将我的无线电选择控件的布局更改为以下形式:

<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'”

1 个答案:

答案 0 :(得分:0)

除非我错过了什么,否则你不应该这样做。添加类的唯一原因是用它做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'选项将是多余的。