私はDjangoが初めてです。script
ビューを使用して配列をテンプレートに渡すことができるように、ブロック継承 (複数またはstyle
タグの場合) を使用してテンプレート内の html を複数回繰り返す最善の方法を知りたいです。
これは、多重継承などを使用して実行できると考えていましたが、そのような実装を開始する方法がわかりません。
私はDjangoが初めてです。script
ビューを使用して配列をテンプレートに渡すことができるように、ブロック継承 (複数またはstyle
タグの場合) を使用してテンプレート内の html を複数回繰り返す最善の方法を知りたいです。
これは、多重継承などを使用して実行できると考えていましたが、そのような実装を開始する方法がわかりません。
私があなたを正しく理解していれば、あなたはこのようなことができると思います。
def ExampleView(request):
items=___ #Whatever objects you want to work on
return render(request, 'template.html', {'items': items,})
そして、あなたのテンプレート。
template.html
...
{% for item in items %}
<-- Whatever you want to do for each item -->
{% endfor %}
誤解していた場合は、お知らせください。
うーん、あなたの質問はまだ明確ではありませんが、一般的に、これは Django でテンプレートを作成する方法です。
というメイン ファイルが 1 つbase.html
あります。これは、他のすべてのテンプレートが拡張/継承するベース テンプレートです。でbase.html
定義できblock
、子テンプレートで、そのブロックに情報を追加できます。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
<link rel="stylesheet" href="{{ STATIC_URL }}css/main.css">
{% block additional_css %}{% endblock %}
<script src="{{ STATIC_URL }}js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
</head>
<body>
{% block content %}{% endblock %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
{% block additional_js %}{% endblock %}
</body>
</html>
例でわかるように、 、 、 の 3 つのブロックを定義additional_css
しcontent
ましたadditional_js
。子テンプレートでは、これらのブロックを拡張して、必要な情報を含めることができます。たとえば、テンプレート名がありますchild.html
。
{% extends "base.html" %}
{% block additional_css %}
<link rel="stylesheet" href="{{ STATIC_URL }}css/child.css">
{% endblock %}
{% block content %}
<h1>Welcome to my site!</h1>
{% endblock %}
リストをテンプレートにブロックで渡したい場合は、簡単です。ビューから渡されたリスト呼び出しall_js_files
を例にすると、テンプレートには次のものがあります。
{% block additional_js %}
{% for js_file in all_js_files %}
<script src="{{ js_file }}"></script>
{% endfor %}
{% endblock %}
基本的な考え方を教えてください。