回答編集履歴

1

わかりやすくリストなどを付加

2022/09/04 08:31

投稿

rykss
rykss

スコア100

test CHANGED
@@ -3,6 +3,7 @@
3
3
  こういったのはほぼすべてのクラスビューにあるので公式サイトで確認するのが良いです
4
4
 
5
5
  # まるごとレンダリング
6
+ django公式サイトから
6
7
  ```html
7
8
  <form action="/your-name/" method="post">
8
9
  {% csrf_token %}
@@ -16,11 +17,26 @@
16
17
  # 手作業でレンダリング
17
18
   この入力フィールドは丸々入ってしまうので、結構ダサい感じになります…。なのでかっこよくした自作の入力フィールドなどから**入力フォームを作るための各入力フィールドのid,labelなどがすでに変数でいくつか定義**してあります。これらをformがリストとして持っているのでforで回しながら手作業でレンダリングすることが可能です。
18
19
 
20
+ django公式サイトから
21
+ ```html
22
+ {% for field in form %}
19
- form:全フィールド持ったリスト。そのまま表示すると自動生成された入力フォームが挿入される。
23
+ <div class="fieldWrapper">
20
- field:フィールドの情報変数。そのまま表示すると自動生成されたフィールド入力のinputタグが挿入される。
24
+ {{ field.errors }}
21
- id_for_label:labelタグのfor要素に使うid
25
+ {{ field.label_tag }} {{ field }}
22
- label_tag:ラベルを自動生成したタグで挿入
26
+ {% if field.help_text %}
27
+ <p class="help">{{ field.help_text|safe }}</p>
28
+ {% endif %}
29
+ </div>
30
+ {% endfor %}
31
+ ```
23
32
 
33
+ ### コードに出てきた変数
34
+ - form:全フィールド持ったリスト。そのまま表示すると自動生成された入力フォームが挿入される。
35
+ - field:フィールドの情報変数。そのまま表示すると自動生成されたフィールド入力のinputタグが挿入される。
36
+ - id_for_label:labelタグのfor要素に使うid名
37
+ - label_tag:ラベルを自動生成したタグで挿入
38
+
39
+ ### 解説
24
40
  ```python
25
41
  {% for field in form %}
26
42
  <div class="mb-4 col-8">
@@ -30,7 +46,7 @@
30
46
  {{ field.errors }}
31
47
  </div> {% endfor %}
32
48
  ```
33
- なので上のようなコードはlabelにstrongタグを付けたいということでformをfor文で回しているんだと思います
49
+ なので上のコードはlabelにstrongタグを付けたいということでformをfor文で回しているんだと思います
34
50
  ちなみに個人的にfield.label_tagはfield.labelでいい気がします
35
51
 
36
52
  詳細は公式にあります(英語なんですが…)