刷新Django模板生成的<div>元素

如何刷新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>

&nbsp;

{% 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>

&nbsp;

{% endfor %}

以上是 刷新Django模板生成的&lt;div&gt;元素 的全部内容, 来源链接: utcz.com/qa/429095.html

回到顶部