[英]Display a grid radio form with Django Forms or Django Floppyforms
我想用這種網格做一個表格:
你知道我該怎么做嗎? 是否有Django表單小部件?
實際上,這是具有相同選項列表的問題,它們在網格中顯示為單選。
謝謝,
Natim
我將使用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樣式即可獲得所需的布局:)
您可以嘗試此字段django-radiogrid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.