2015-09-04 122 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

模板應該從繼承,然後。如果目前有基本的東西,你不想在其他一些模板中,你應該使用一箇中間父本身,它本身是從基礎繼承而來的,有些模板可以使用,其他模板則不能。