簡體   English   中英

使用Django Forms或Django Floppyforms顯示網格廣播表單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM