0

2 つのリストがあります (これらはほんの一例です)。

Attackers = ['John', 'Mary']
Defenders = ['Steve', 'Bill', 'Dave']

私の目的は、2 つのリスト間のすべての可能な関係を表す適切な量の入力 (チェックボックス) を持つ 2D グリッド フォームを作成することです。

モデルとビューの両方のレベルでこれを行う方法について頭を悩ませています。インライン フォームセットとモデル フォームセットを調べましたが、どうすればよいかよくわかりません。

編集:

{% for at in atts %}
    {% for def in defs %}
        <input type="text" name="{{ at }}_{{ def }}" value="{{ at }}_{{ def }}" >
    {% endfor %}
    <br>
{% endfor %}
4

1 に答える 1

1

ペアごとに 1 つのチェックボックスを作成します。これらのペアをフォームに正しい順序で配置し (HTML では左から右、次に下のレイアウトが優先されるため)、テンプレートに適切に表示します。

チェックボックスを作成するには:フォームにはフィールドと呼ばれるフィールドのコレクションがあります。これは、フィールド名をフィールド オブジェクトにマッピングする辞書です。これをプログラムで設定する必要があります。django でフォーム コードをクラックして開いたり、シェルでフォーム オブジェクトを調べたりすると、反復の順序を制御するフィールドのリストまたはタプルも存在することがわかります (私の記憶が間違っていなければ)。上記のように、これを正しい順序で入力する必要があります。

表示するには: テンプレート内のフォームを反復処理します。フォームに情報を含めるか、テンプレートに渡してグリッドの形状を記述し、テンプレート コードが行の境界を配置する場所を特定できるようにする必要があります。

于 2012-12-30T22:04:48.553 に答える