我想從我的settings.py中將一些變量設置爲,這些變量在我的項目中運行的每個javascript都可用。從Django到javascript的全局變量
達到此目的最優雅的方法是什麼?
現在我能想到兩個:
寫一個上下文處理器,並在基本模板聲明的全局。所有模板都必須擴展基本模板。
在動態生成的.js文件(通過某種視圖)中聲明這些全局變量,並在基本模板中使用
<script>
標記加載此文件。所有模板都必須擴展基本模板。
我可以在沒有基礎模板的情況下做到嗎?
我想從我的settings.py中將一些變量設置爲,這些變量在我的項目中運行的每個javascript都可用。從Django到javascript的全局變量
達到此目的最優雅的方法是什麼?
現在我能想到兩個:
寫一個上下文處理器,並在基本模板聲明的全局。所有模板都必須擴展基本模板。
在動態生成的.js文件(通過某種視圖)中聲明這些全局變量,並在基本模板中使用<script>
標記加載此文件。所有模板都必須擴展基本模板。
我可以在沒有基礎模板的情況下做到嗎?
我對django不熟悉,所以這可能是完全不正確的。
你能寫出變量隱藏HTML頁面上的字段。這將允許你從JavaScript訪問它們,或者如果你需要,可以在表單文章中使用它們。
我有同樣的問題,我使用了一個醜陋的解決方案與「重構以後」的說明。
我在我的基本模板的頂部放置了一個js_top塊,然後任何需要額外包含或js變量集的模板都可以使用該塊。
所以,我有東西像這樣:
{% block js_top %}
<script src="/jquery.useless-plugin.js" type="textjavascript"></script>
<script type="textjavascript">
var myVar = {{my_variable.propriety}};
</script>
{% endblock %}
當然,如果你有需要的一個更強大和更少的「一次性」系統,我會用生成的JS去。
爲什麼你沒有基礎模板?使用HTML文檔類型和其他標準材料製作標準基本模板有什麼不妥? – 2010-02-05 14:53:22