簡體   English   中英

如何在靜態文件中使用Django模板語法

[英]How to use django template syntax in static files

在Django模板中包含靜態文件有很多可用的文檔。 但是,我找不到有關如何在靜態文件中使用Django模板語法的任何信息。

我有一個HTML文件,其中在標記之間包含javascript,如下所示:

var nodes = JSON.parse('{{nodes|safe}}');

現在,我將所有JavaScript都移到了我要提供的靜態.js文件中。 它包含在HTML文件中,如下所示:

<script src="{% static 'citator/analysis.js' %}" type="text/javascript"></script>

除了.js文件中使用Django模板語法的部分之外,其他所有程序都運行正常。

我的問題是,如果JavaScript不在模板中而是直接作為靜態文件導入,則有沒有辦法在javascript中使用Django模板語法? 還是我必須在模板中獲取上下文數據,然后將其傳遞給靜態文件中的函數?

不幸的是,沒有任何Django功能可讓您直接執行此操作。 阻止此情況的根本問題是將上下文傳遞到視圖中render()函數中提及的模板(或其他行為相同的函數,例如render_to-response() )。 最好的選擇是在模板文件中使用內聯js。 可以理解,為了保持代碼干凈,您不希望模板中包含js函數。 因此,獲取所需的數據如下:

<script>
    var nodes = JSON.parse('{{nodes|safe}}');
</script>

此代碼之后導入您的靜態js文件,您應該一切順利,並保持代碼干凈和模塊化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM