我想用这种网格制作一个表格:
你知道我该怎么做吗?有没有一个 Django Form 小部件呢?
实际上,它是具有相同选择列表的问题,在网格中显示为收音机。
谢谢,
纳提姆
我想用这种网格制作一个表格:
你知道我该怎么做吗?有没有一个 Django Form 小部件呢?
实际上,它是具有相同选择列表的问题,在网格中显示为收音机。
谢谢,
纳提姆
我会使用 django 表单来执行此操作,网格上每行一个字段,ChoiceField 和 RadioSelect 作为小部件:
line1 = forms.ChoiceField(widget=forms.RadioSelect, choices=TRUC)
line2 = …
然后你需要找到模板布局来正确渲染它。RadioSelect
生成 a <ul>
,其中 eahc 选择为 a <li>
。选择标签包含在 中<li>
,这不是您想要的。
使用 floppyforms,您可以子类化RadioSelect
并给它一个自定义模板名称(查看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 样式即可获得所需的布局 :)
你可以试试这个字段django-radiogrid