下面是
forms.py:
GRADE_CHOICE=(
('1','Grade 1'),
('2','Grade 2'),
('3','Grade 3'),
('4','Grade 4'),
('5','Grade 5'),
('6','Grade 6') )
grades=forms.MultipleChoiceField(
choices=GRADE_CHOICE,
required=True,
widget=CheckboxSelectMultiple())
Template.html:
< divclass="controls">
{{ form.grades }}
< /div>
上面的代码工作正常,模板显示正确的数据。但是,它只在一列或逐行显示数据。
<ul>
<li><label for="id_grades_0"><input type="checkbox" name="grades" value="1" id="id_grades_0" /> Grade 1</label></li>
<li><label for="id_grades_1"><input type="checkbox" name="grades" value="2" id="id_grades_1" /> Grade 2</label></li>
<li><label for="id_grades_2"><input type="checkbox" name="grades" value="3" id="id_grades_2" /> Grade 3</label></li>
<li><label for="id_grades_3"><input type="checkbox" name="grades" value="4" id="id_grades_3" /> Grade 4</label></li>
<li><label for="id_grades_4"><input type="checkbox" name="grades" value="5" id="id_grades_4" /> Grade 5</label></li>
<li><label for="id_grades_5"><input type="checkbox" name="grades" value="6" id="id_grades_5" /> Grade 6</label></li>
</ul>
有没有办法改变它,所以它会在一行中显示3条记录?
答案 0 :(得分:0)
你可以用风格来做,这是一个简单的例子,它可以通过多种方式实现。
风格:
li.three { width:33.333%;float:left;display:inline }
标记:
<ul>
<li class='three'>A</li>
<li class='three'>B</li>
<li class='three'>C</li>
<li class='three'>D</li>
<li class='three'>E</li>
<li class='three'>F</li>
<li class='three'>G</li>
<li class='three'>H</li>
</ul>
#to add the style use the "attrs" kwarg.
grades=forms.MultipleChoiceField(
choices=GRADE_CHOICE,
required=True,
widget=CheckboxSelectMultiple(attrs={'class': 'three'}))
或者,您可以自定义render
功能,但样式更简单并且可以完成工作。
我无法忍受每一个李与上一级的比赛的标记。 You can also customize the render function to allow the style to be put on the ul vs li