我是Django的新成員。我想知道什麼最好的方法是使用塊繼承多次重複模板中的一段html(對於多個script
或style
標記),我可以使用視圖將數組傳遞到模板。在Django模板中重複模式
我在想這可以通過使用像多重繼承的東西來完成,但我不知道如何開始實現這樣的事情。
我是Django的新成員。我想知道什麼最好的方法是使用塊繼承多次重複模板中的一段html(對於多個script
或style
標記),我可以使用視圖將數組傳遞到模板。在Django模板中重複模式
我在想這可以通過使用像多重繼承的東西來完成,但我不知道如何開始實現這樣的事情。
如果我理解正確,我認爲你可以做這樣的事情。
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中製作模板。
您有一個名爲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 %}
只給你的基本理念。