在Django中使用特定于模板的JavaScript
我在在Django中使用特定于模板的JavaScript,javascript,html,django,Javascript,Html,Django,我在django中有一个base\u generic.html页面,其中包含标准的UI元素(导航栏、页脚等),还有一个list.html页面,它扩展了base\u generic.html页面。list.html页面正在使用一个仅在该页面中使用的javascript函数,但为了使其正常工作,我必须将其包含在base\u generic.html页面中 我如何使用Django的内置模板标记和功能在list.html中包含这个javascript函数 我应该使用{%verbatim%}或{%scri
django
中有一个base\u generic.html
页面,其中包含标准的UI元素(导航栏、页脚等),还有一个list.html
页面,它扩展了base\u generic.html
页面。list.html
页面正在使用一个仅在该页面中使用的javascript
函数,但为了使其正常工作,我必须将其包含在base\u generic.html
页面中
我如何使用Django的内置模板标记和功能在list.html
中包含这个javascript
函数
我应该使用{%verbatim%}
或{%scripts%}
或其他标记模板吗
我是否应该将其与具有此
django
模板的html
的{%block content%}
内联,还是应该将其放在{%block content%}
之前或之后?您有几种方法可以实现您想要的:
- 只需在
{%block content%} 我的javascript(); {%endblock内容%}{%block content%}
- 将
语句用于javascript文件,同样,在include
{%include'my_javascript.html%}{%block content%}
- 在
中创建一个新块,如: {%block my_javascript%}{%endblock my_javascript%}base\u generic.html
在您的子模板中,按照前面几点中的说明添加javascript。在这种情况下,javascript可以位于
{%block content%}
的外部或内部。另一种方法是在您的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 %}
{%如果脚本包含%}
{scripts_-to_-include%}
{%endfor%}
{%endif%}
我喜欢这样,因为js文件仍然可以存储在一个目录中(而不是直接放入html),js文件也是可重用的。“但是为了让它工作,我必须将它包含在base_generic.html页面中。”为什么,如果你只在
list.html
中需要它?list.html
是一个django
模板,它扩展了{%“base_generic.html”%}
。是的,它会覆盖块内容中的任何内容,因此它不需要位于“base_generic.html”中“。这似乎不起作用。我正在的list.html
底部添加我的javascript。当然,在实施您推荐的解决方案时,我有一个输入错误。一切都按它应该的那样工作。谢谢你的帮助。