このようなグリッドでフォームを作りたいです:
私がこれを行う方法を知っていますか?そのためのDjangoフォームウィジェットはありますか?
実際には、同じ選択肢リストがグリッドにラジオとして表示されている質問です。
ありがとう、
ナティム
このようなグリッドでフォームを作りたいです:
私がこれを行う方法を知っていますか?そのためのDjangoフォームウィジェットはありますか?
実際には、同じ選択肢リストがグリッドにラジオとして表示されている質問です。
ありがとう、
ナティム
これは、ChoiceFieldとRadioSelectをウィジェットとして使用して、グリッド上の1行に1つのフィールドを持つdjangoフォームで行います。
line1 = forms.ChoiceField(widget=forms.RadioSelect, choices=TRUC)
line2 = …
次に、これを正しくレンダリングするためのテンプレートレイアウトを見つける必要があります。eahcの選択肢がであるをRadioSelect
生成します。選択ラベルはに含まれていますが、これはここで必要なものではありません。<ul>
<li>
<li>
floppyformsを使用すると、サブクラス化して、ラベルを省略するためRadioSelect
にcutom template_name(テンプレートを参照)を付けることができます。たとえば、の代わりにfloppyforms/radio.html
テーブルセル(s)をレンダリングするように変更し、フォームマークアップでテーブルのヘッダーにラベルが付いたテーブルを生成することもできます。<td>
<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