2017-10-08 84 views
0

我想要這樣的Django模板內。我想在JavaScript文件或其他模板文件中使用這些變量。如何在django模板中設置變量(使用set標籤)?

{% set titles = { 
     'table': form._meta.model._meta.verbose_name_plural.title(), 
     'form': form._meta.model._meta.verbose_name.title() 
     } 
    %} 

    {% set dtable = "dt_" + page %} 

如何在django模板中創建「set tag」?你的回答對我有幫助。

回答

0

雖然我認爲這通常是要避免(混合模板&邏輯一般是在Django建議不要) ,似乎可以通過使用with標籤。

{% with name="World" greeting="Hello" %}  
<html> 
<div>{{ greeting }} {{name}}!</div> 
</html> 
{% endwith %} 

在JavaScript中,它可能會是這樣的

$(document).ready(function(){ 
    {% with greeting="hello" %} 
     var text = '{{ greeting }}' 
    {% endwith %} 

});我不相信你可以這樣設置元組或字典。也就是說,如果您嘗試使用{%with ...%}設置更復雜的類型,則應該在視圖中處理邏輯。

Referenced from this SO question.

+0

謝謝。但是有沒有使用「設置標籤」的定製方式? –

+0

我不明白你的問題。這和「set tag」之間有什麼區別?另外,如果要在邏輯中使用標籤,您爲什麼要在模板中設置標籤而不是在視圖中?如果你想通過很多頁面使用模板標籤,你應該使用上下文處理器。我不認爲你可以在模板中創建一個標籤,並且擴展到許多頁面,而不需要一些非Djangoistic的javascript粘合。 – rob

0

案例1:

如果你想訪問你的字典中的HTML模板。您可以將titles字典傳遞給模板,並通過點(。)運算符訪問字典的任意鍵。

<div class="something1">{{ titles.table }}</div> <div class="something2">{{ titles.form }}</div>

案例2:

如果你想送一本字典的HTML模板,並訪問您的JavaScript文件,我建議你將它們存儲在輸入的數據屬性(隱藏)元素或任何元素,然後通過JavaScript訪問。

<input type="hidden" id="my-data-table" data-table="{{ titles }}">

您可以訪問詞典在JavaScript這樣的文件,

var myTitles = document.getElementById("my-data-table"); var titles = myTitles.getAttribute("data-table");

+0

謝謝。但是,你沒有得到我的問題。我想知道如何在django模板中創建集標籤。 –

相關問題