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"));
  });

});