在表单.py在
class TypeSelectionForm(forms.Form):
checkbox_field = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(), label="", required=False)
def __init__(self, type_id, *args, **kwargs):
super(TypeSelectionForm, self).__init__(*args, **kwargs)
_type_checkbox = self.fields['checkbox_field']
MY_CHOICES=((type.id, type.title) for type in type)
_type_checkbox.choices = MY_CHOICES
initial_val = []
type_selection = Types.objects.filter(parent_type_id=type_id,is_active=True)
for type_selection in type_selection:
initial_val.append(type_selection.id)
_type_checkbox.initial = initial_val
在视图.py在
^{pr2}$在模板中,我像这样渲染字段
在类型.html在
{% for field in types.checkbox_field %}
<div class="deletelist">
{{field}}<br />
</div>
{% endfor %}
它正在生成这样的html
<ul>
<li><label for="id_checkbox_field_0"><input checked="checked" type="checkbox" name="checkbox_field" value="597" id="id_checkbox_field_0" /> comp lab</label></li>
<li><label for="id_checkbox_field_1"><input checked="checked" type="checkbox" name="checkbox_field" value="598" id="id_checkbox_field_1" /> phy lab</label></li>
<li><label for="id_checkbox_field_2"><input checked="checked" type="checkbox" name="checkbox_field" value="599" id="id_checkbox_field_2" /> chem lab</label></li>
</ul>
我想用<div class="class-name">
替换<ul>
和<li>
标记
需要帮助。在
从documentation:
在模板中,应具有以下内容:
您还应该使用^{} :
^{pr2}$从你的角度出发:
为什么不使用Django模板标记的功能呢?在
把它放在一个模板标签中,然后在你的模板中简单地做这个
^{pr2}$===============================
其他方法(更干净)
另一种方法是扩展django表单模型
具体如下:
那你就可以做这是你的模板
小部件接受attrs属性,该属性应将该属性添加到每个输入。试试这个:
更新:
因此,上面提到的粒度方法似乎只适用于单选按钮小部件。但你想要的其实很简单。只需正常输出复选框:
^{pr2}$这将根据需要输出复选框列表。然后只需使用一点CSS来设置每个列表项的背景图像的样式:
}
更新
如果你想以不同的方式呈现复选框,你需要一个自定义的widget类,因为这是widgets的工作。像这样的事情会让你走的。我个人会使用widget上的attrs选项来添加一个类,但我在这里硬编码了它,以向您展示您的请求是可能的,只是不太好:
在您的表单中使用:
相关问题 更多 >
编程相关推荐