Django テンプレートを使用する場合、いわば「サブルーチン」のように機能するいくつかのテンプレートを使用する必要がありますか、またはこれらの場合、コード内から HTML を生成する必要がありますか?
たとえば、いくつかの名前のリストを含むテンプレートがあり、それぞれをselect
. 変数を選択にレンダリングするテンプレートがあり、次のname_list
ようにする必要があります。
#in the view:
return {'name_list_1': name_list_1,
'name_list_2': name_list_2,
'name_list_3': name_list_3}
#in the template:
{% with name_list_1 as name_list %}
{% include "sub_name_list_select.html" %}
{% endwith %}
{% with name_list_2 as name_list %}
{% include "sub_name_list_select.html" %}
{% endwith %}
{% with name_list_3 as name_list %}
{% include "sub_name_list_select.html" %}
{% endwith %}
または、同じ仕事をする関数をコードに入れname_list_to_select_html
、これを行う必要があります。
return {'name_list_1_html': name_list_to_select_html(name_list_1),
'name_list_2_html': name_list_to_select_html(name_list_2),
'name_list_3_html': name_list_to_select_html(name_list_3)}
#in the template:
{{ name_list_1_html|safe }}
{{ name_list_2_html|safe }}
{{ name_list_3_html|safe }}
それとも、これらの両方が間違っていて、私は哲学を完全に間違っていますか?
追加の質問: 速度に関して、常にテンプレートを含めるのは遅いですか? それはコード内 HTML 生成のボーナス ポイントですか?