Django でwebアプリを作成しています。
クリックで開閉するドロップダウンリストを作成しようと思い、ベースとなるテンプレートを用意し、
それを継承したテンプレートにリストの中身を記述しようと考えています。
dropdown_base.html
1<div> 2 <input id="{% block name %}{% endblock %}" type="checkbox"> 3 <label for="{% block name %}{% endblock %}"> 4 {% block label %}{% endblock %} 5 </label> 6 7 {% block content %}{% endblock %} 8</div>
child.html
1{% extends dropdown_base.html %} 2 3{% block name %}menu{% endblock %} 4{% block label %}label{% endblock %} 5{% block content%} 6 <ul> 7 ~~~~ 8 </ul> 9{% endblock %}
上記のように継承側からドロップダウンの開閉を制御するチェックボックスの id を指定して、
その id と同じ for 要素を持った label を設置する形で作成しようと試してみましたが、
どうやら同じ名称の block は複数存在してはいけないようでエラーになってしまいました。
そこで、継承側からベースとなるテンプレートへ id にあたる値を渡し、
dropdown_base.html
1<div> 2 <input id="{{ name }}" type="checkbox"> 3 <label for="{{ name }}"> 4 {% block label %}{% endblock %} 5 </label> 6 7 {% block content %}{% endblock %} 8</div>
のように書けないかとも考えましたが、ベース側にうまく値を渡す方法がわかりませんでした。
イメージとしては、
child.html
1{% extends dropdown_base.html with name="menu" %}
の様にかければ最高なのですが、、、
同じような機能が実装できれば、値を渡す以外の方法でも構いません。
どうぞ、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/08 13:46
2019/01/08 16:02
2019/01/13 14:06