2015-09-04 167 views
1

我有这个问题希望你有一些想法如何解决它。 在一个不是基模板的“子模板”的Django模板中,我想使用基模板中的JavaScript模块,即Jquery。有没有办法实现这一点,而无需再次加载我需要的所有JavaScript库?Javascript模块不可用模板不继承自基础Django tempate

比方说 base.html文件

{% block js %} 
<script src="some/path/to/jquery.js"></script> 
{% endblock $} 

some_component_base_template.html

// Not inherited from base.html 

{% block somejsblock %} 
<script> 
$(document).ready(function(
    //some code I need 
)) 
</script> 
{% endblock %} 

HTML的此块可以在任何地方插入经由插槽机制,用户模板,这就是为什么它不” t从base.html继承,如果我创建另一个头,每当这个HTML块被加载时,javascripts也将被加载。

回答

0

如果您不是从基地继承,您应该创建一个标题并手动添加引用。

+0

这就是我想要避免的,因为这是一段将要在网站周围重复的html,并且在这种情况下,我将使用google api,只要它的加载次数超过一次,我得到一个JavaScript错误或警告。全球范围内没有JavaScript模块吗? –

+0

在这种情况下,最好的答案是Daniel Roseman的。你应该只把所有的全局资料放在你的基础上。如果你需要在应用程序中重复使用不同的内容,那么你可以做的最好的事情是创建一个“中间”父项,它可以从基础扩展并添加这些新的htmls。 – acostela

+0

“这是一段将在站点周围重复的html”:然后显然它应该是Daniel Roseman所说的基本模板的一部分 - 这就是base.html模板的用途:您想要的部分_每个和每个模板。 –

2

模板应该从继承,然后。如果目前有基本的东西,你不想在其他一些模板中,你应该使用一个中间父本身,它本身是从基础继承而来的,有些模板可以使用,其他模板则不能。