Javascript 如何用Django模板中的其他内容替换内容?
我正在迭代我的模型,我想用同一个模型的内容替换这个列表,只需使用一个按钮就可以排序。让我们假设我有这个:Javascript 如何用Django模板中的其他内容替换内容?,javascript,python,jquery,django,Javascript,Python,Jquery,Django,我正在迭代我的模型,我想用同一个模型的内容替换这个列表,只需使用一个按钮就可以排序。让我们假设我有这个: 替换内容 首先,我要提出一个警告:决定是否要由Django模板播放器或JQuery更改数据是两件截然不同的事情 Django将更改服务器上的数据,而JQuery用于更改呈现的数据(通常在页面已经显示给用户之后) 走Django路线: Django只是一个模板播放器,所以在它被渲染后,您不能对其进行更改。它不是一种能够与呈现页面持续交互的函数式语言 但是,您可以使用模板语法将逻辑放在适当的
替换内容
首先,我要提出一个警告:决定是否要由Django模板播放器或JQuery更改数据是两件截然不同的事情
Django将更改服务器上的数据,而JQuery用于更改呈现的数据(通常在页面已经显示给用户之后)
走Django路线:
Django只是一个模板播放器,所以在它被渲染后,您不能对其进行更改。它不是一种能够与呈现页面持续交互的函数式语言
但是,您可以使用模板语法将逻辑放在适当的位置,以决定数据的去向,或者使用以下结构:
当我编写一个复杂的模板时,我发现自己经常使用以下结构:
{% extends "path/ParentFile.html" %}
{% block content %}
{% include "path/ToDefaultChildFile.html" %}
{% endblock %}
如果您对页面呈现没有意见,然后在加载页面后使用JQuery对其进行更改,那么您需要查看JQuery/JavaScript/frontend框架代码来执行此操作。使用JQuery.replaceWith()
函数。比如:
<div class="col-md-3">
<button>Replace content </button>
</div
<div class="col-md-9 old">
{% for c in cats%}
{{c.name}}
{% endfor %}
<p>Content to be replaced</p>
</div>
<div class="col-md-9 new">
{% for c in animal.cats_set.all %}
{{c.name}}
{% endfor %}
<p>Content to replace above content, sorted by if cat belongs to same animal</p>
</div>
希望这有帮助 我希望在加载数据之后,jQuery可以更改内容。我只是不知道怎么做。好吧,再一次,值得考虑的是,在呈现模板之前,是否真的更容易找到如何更改模板的方法。您可能会使包含JavaScript变得完全不必要。但是,如果您开始使用JavaScript,则需要使用选择器$('myselector')访问元素然后可能用innerHTML之类的内容替换内容——但所有这些都不仅仅是一个注释,您应该接受这个答案,这样我们就可以关闭它,然后查看一些JQuery教程,让您自己开始学习。:)我成功了,谢谢!:-)
<div class="col-md-3">
<button>Replace content </button>
</div
<div class="col-md-9 old">
{% for c in cats%}
{{c.name}}
{% endfor %}
<p>Content to be replaced</p>
</div>
<div class="col-md-9 new">
{% for c in animal.cats_set.all %}
{{c.name}}
{% endfor %}
<p>Content to replace above content, sorted by if cat belongs to same animal</p>
</div>
$(function() {
$(":button").click(function(e) {
$(".old").replaceWith($(".new"));
});
});