我是 Django 的新手。script
我想知道最好的方法是使用块继承(对于多个或标签)在模板中多次重复一段 html,style
我可以使用视图将数组传递给模板。
我在想这可以通过使用多重继承之类的东西来完成,但我不知道如何开始实现这样的事情。
我是 Django 的新手。script
我想知道最好的方法是使用块继承(对于多个或标签)在模板中多次重复一段 html,style
我可以使用视图将数组传递给模板。
我在想这可以通过使用多重继承之类的东西来完成,但我不知道如何开始实现这样的事情。
如果我理解正确,我认为你可以做这样的事情。
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 %}
只是给你一个基本的想法。