我想用这种格子制作一个表格:
你知道我怎么做吗?是否有Django Form小部件?
实际上,这是在网格中显示为无线电的相同选项列表的问题。
谢谢,
Natim
答案 0 :(得分:4)
我用django表单执行此操作,网格上每行一个字段,其中ChoiceField和RadioSelect为小部件:
line1 = forms.ChoiceField(widget=forms.RadioSelect, choices=TRUC)
line2 = …
然后,您需要找到模板布局才能正确呈现。 RadioSelect
生成<ul>
,其中eahc选项为<li>
。选择标签包含在<li>
中,这不是您想要的。
使用floppyforms,您可以继承RadioSelect
并为其指定cutom template_name(查看floppyforms/radio.html
模板)以省略标签。您也可以更改它以表示(例如)表格单元格(<td>
s)而不是<li>
,并使表单标记生成一个表格,其中包含表格标题中的标签。
import floppyforms as forms
class RadioSelect(forms.RadioSelect):
template_name = 'myforms/radio.html'
将您想要的行标记放在上面的模板中。
然后,在呈现表单的模板中:
<form method="post" action="youraction">
<table>
<thead>
<td> <!-- put your form headers here --> </td>
</thead>
<tbody>
{% for field in form %}
<tr>
<td>{{ field.label_tag }}</td>
{{ field }}
</tr>
{% endfor %}
</tbody>
</table>
<!-- submit button -->
</form>
然后,只需应用几种CSS样式来获得所需的布局:)
答案 1 :(得分:1)
您可以尝试此字段django-radiogrid