我在base_generic.html
中有一个django
页面,该页面具有标准的UI元素(导航栏,页脚等),并且还有一个list.html
页面,该页面扩展了{{1} }页面。 base_generic.html
页面使用的list.html
函数仅在此页面中使用,但是要使其正常工作,我必须将其包含在javascript
页面中。
如何使用Django的内置模板标记和功能在base_generic.html
中包含此javascript
函数?
我应该使用list.html
还是{% verbatim %}
还是其他标签模板?
我应该在此{% scripts %}
模板的包含{% block content %}
的{{1}}中加入此行,还是应该将其放在html
之前还是之后?
答案 0 :(得分:1)
您可以通过多种方式完成自己想要的事情:
只需在{% block content %}
{%块内容%}
我的javascript();
{%endblock content%}
再次使用include
语句和您的javascript文件,在内部 {% block content %}
{%include'my_javascript.html'%}
通过这种方式,您可以在其他页面上重复使用JavaScript代码。
在base_generic.html
中创建一个新块,例如:
{%block my_javascript%} {%endblock my_javascript%}
然后在您的子模板中,按照这些标签的第一个要点添加javascript,在这种情况下,它可以位于{% block content %}
的内部或外部。
答案 1 :(得分:0)
另一种方法是在您的 views.py 中传递 js 文件的路径:
context = {
'scripts_to_include':['/static/js/my_js_file.js']
}
您显然可以在此处包含多个 js 文件。然后,在您的模板中:
{% if scripts_to_include %}
{% for script_url in scripts_to_include %}
<script src="{{script_url}}"></script>
{% endfor %}
{% endif %}
我喜欢这样,因为js文件仍然可以存储在一个目录中(而不是直接放到html中),js文件也可以重复使用。