在Django中使用模板特定的JavaScript

时间:2018-09-18 17:43:25

标签: javascript html django

我在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之前还是之后?

2 个答案:

答案 0 :(得分:1)

您可以通过多种方式完成自己想要的事情:

  • 只需在{% block content %}

    内部中添加javascript代码段

    {%块内容%}

    我的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文件也可以重复使用。