2017-04-10 84 views
0

在Django項目中,我有urls.pyurl(r'^data/$', get_data, name='data'),Django的模板URL從js文件

我可以在我的模板data.html添加像<a href='{% url 'data' %}'>Create New Data</a>並能正常工作。當我點擊鏈接時,它會顯示localhost://data

現在我動態顯示錶,使用jQuery和數據表中​​,而我能夠用下面的代碼,使點擊表格單元格:

$('#table').DataTable({ 
    "columnDefs": [ 
      { 
       "render": function (data, type, row){ 
        return "<a href='blawblawblaw'>Click cell</a>"; 
      }, 
      ] 
}) 

我可以通過上述return語句網址是什麼?像

return "<a href='{% url 'data' %}'>Click cell</a>";

如果我上面我收到錯誤404錯誤與The current URL, {% url, didn't match any of these.

回答

1

嘗試,因爲語法類似:'{% url 'data' %}'是Django的模板,Django會渲染服務器端的HTML,然後響應呈現HTML到客戶端。

當我們在views.py中調用render(request, template)時,Django將填寫模板中寫入的內容,如:{% url 'data' %}

如果您的url對於每個數據對象都是相同的,您可以將您的js代碼粘貼到模板中,使用Django來呈現內容。

如果您的網址是針對每個數據對象的動態更改,我會給數據對象附加信息字段,如:"url""id",以便客戶端可以獲取正確的URL路徑。

Django中的語法如:{% .... %}是針對服務器端的,而不是針對客戶端的。您可以打開的開發工具,看看返回值,並且你會看到原始字符串:"<a href='blawblawblaw'>Click cell</a>"

+0

'{%塊含量%} <表ID =「表」級=「table表條紋」 > {%endblock content%}'這是我當前的'data.html',表從'data.js'動態呈現,所以我不知道如何在''% data.html'表格單元格? – user2661518

+0

第一個你是否只是'data.js'複製到'data.html'中?對於第二個你可以請舉例。 – user2661518

+0

如果網址在您的網址中爲常量,則可以使用Django渲染功能來呈現您的數據,從而將您的js主體粘貼到模板中。 如果URL與js中的每個數據對象都不相同,則應該在數據對象中添加一些url信息並在js中檢索這些信息。 –