[英]Refresh <div> element generated by a django template
如何刷新django模板中的某個元素?
例:
{% if object.some_m2m_field.all %}
<h3>The stuff I want to refresh is below</h3>
<div id="the-div-that-should-be-refreshed">
{% for other_object in object.some_m2m_field.all %}
<a href="www.example.com">{{ other_object.title }}</a>
{% endfor %}
</div>
{% endif %}
讓我們說頁面中的其他一些元素會觸發一個應該刷新上面div的javascript。 有沒有辦法讓django刷新模板中的這個特定元素?
如果沒有,我將不得不使用常規JS或jQuery方法對div進行修補,而不是使用django模板層的強大功能。 另外,上面的代碼是對實際模板的簡化,我使用了很多模板的功能,因此猴子修補生成的html將是一場噩夢......
您可以使用異步請求來填充div元素。 django使用模板引擎回答異步請求。
在這種情況下,您必須將div元素的模板代碼外包到單獨的模板文件中。
更新示例:
使用Javascript:
要異步刷新視圖,請使用JQuery作為示例:
$.ajax({
url: '{% url myview %}',
success: function(data) {
$('#the-div-that-should-be-refreshed').html(data);
}
});
異步查看:
def myview(request):
object = ...
return render_to_response('my_template.html', { 'object': object })
模板:
{% for other_object in object.some_m2m_field.all %}
<a href="www.example.com">{{ other_object.title }}</a>
{% endfor %}
最好的祝福!
你可以看看例如。 這個Ajax與Django教程 。 無論如何,如上所述,無論是在普通請求還是在ajax請求中調用視圖,都可以使用django的模板引擎! 如果你必須更頻繁地使用帶有django的ajax,那么看看像dajax這樣的東西是有意義的 ,這是django的ajax庫(看看那里的教程)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.