我正在使用Django模板,在一个特定的模板中,我正在加载几个div,内容执行两个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?
答案 0 :(得分:1)
你应该了解Django模板的一件事是它们是由你的服务器呈现的,所以没有模板标签可以在客户端工作。所以是的,您应该创建一个单独的端点并通过Javascript从中检索数据。