2016-11-04 100 views
1

我正在使用Django模板,在特定的模板中,我加載了兩個div,內容執行兩個AJAX請求以使事情變得更快。Django:AJAX請求後加載模板

我說的主要模板包括一個視圖在結尾,實際上主要是JS。事情是這個JS依賴於在這些AJAX請求中加載的數據,所以在必要的數據在HTML中之前,模板將呈現腳本。

快速方案:

{# main template #} 
{% block content %} 
    <div id="main">...</div> 
    <div id="load-data-1"></div> 
    <div id="load-data-2"></div> 
{% endblock %} 

{% block js }% 
    {% include 'template_with_scripts.html' %} 
{% endblock %} 

template_with_scripts.html

<script> 
    $.get(url1, function(data) { $('#load-data-1').html(data); }); 
    $.get(url2, function(data) { $('#load-data-2').html(data); }); 
</script> 

{% include 'scripts_related_with_ajax_loaded_data.html' %} 

所以我需要做的是加載腳本後的AJAX請求完成後,如this answer解釋。

但我的問題是如何在AJAX調用完成後加載scripts_related_with_ajax_loaded_data.html文件。我應該創建一個新的路線和視圖來將呈現的上下文作爲HTML返回嗎?看起來很奇怪,有點矯枉過正。有沒有一個標記只是呈現你傳遞的任何模板,所以我可以將它附加到HTML?

回答

1

您應該瞭解的有關Django模板的一件事是它們由您的服務器呈現,因此沒有模板標籤將在客戶端工作。所以是的,你應該創建一個單獨的端點並通過Javascript從它檢索數據。