teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別案を追記

2019/01/08 16:01

投稿

tell_k
tell_k

スコア2120

answer CHANGED
@@ -22,4 +22,43 @@
22
22
  {% include "dropdown_block.html" with name="name1" label="label1" contents=contents1 %}
23
23
  ```
24
24
 
25
- 参考: https://docs.djangoproject.com/ja/2.1/ref/templates/builtins/#include
25
+ 参考: https://docs.djangoproject.com/ja/2.1/ref/templates/builtins/#include
26
+
27
+
28
+ ### 追記
29
+
30
+ 実際に試してないので、動くかわかりませんが、似たような回答が Stackoverflowにありました。 多分下記のように `block.super` をうまく使うと name変数を継承先でもセットできそうです。
31
+
32
+ https://stackoverflow.com/a/46581444/7724457
33
+
34
+ 継承元テンプレート
35
+ ```
36
+ {% block dropdown_wrapper %}
37
+ <div>
38
+ <input id="{{ name }}" type="checkbox">
39
+ <label for="{{ name }}">
40
+ {% block label %}{% endblock %}
41
+ </label>
42
+
43
+ {% block content %}{% endblock %}
44
+ </div>
45
+ {% endblock %}
46
+ ```
47
+
48
+ 継承先テンプレート
49
+ ```
50
+ {% extends dropdown_base.html %}
51
+
52
+ {% block dropdown_wrapper %}
53
+ {% with name="name1" %}
54
+ {{ block.super }}
55
+ {% endwith%}
56
+ {% endblock %}
57
+
58
+ {% block label %}label{% endblock %}
59
+ {% block content%}
60
+ <ul>
61
+ ~~~~
62
+ </ul>
63
+ {% endblock %}
64
+ ```