首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按一下按钮将几个模板加载到django中的基本模板中

按一下按钮将几个模板加载到django中的基本模板中
EN

Stack Overflow用户
提问于 2019-02-22 09:44:20
回答 1查看 215关注 0票数 1

我有几个应用程序(app1.html,app2.html等等)还有一个base.html,它有(比如说)4个占位符。现在,我希望通过单击其中一个占位符使用户能够从这些应用程序中选择并将它们加载到占位符中。为了更清晰起见,下面是一个简单的js示例:https://jsfiddle.net/eja4t0gb/15/

HTML:

代码语言:javascript
复制
  <body>
    <div id="module-1" class="">
      This is module 1.
      <button id="load-1">Load Module</button>
    </div>
    ---
    <div id="module-2" class="">
      This is module 2.
      <button id="load-2">Load Module</button>
    </div>
    ---
    <div id="module-3" class="">
      This is module 3.
      <button id="load-3">Load Module</button>
    </div>
    ---
    <div id="module-4" class="">
      This is module 4.
      <button id="load-4">Load Module</button>
    </div>
    --- ---
    <div id="chooser">
      Choose an App.
      <button id="app-1">App-1</button>
      <button id="app-2">App-2</button>
      <button id="app-3">App-3</button>
      <button id="app-4">App-4</button>
    </div>
  </body>
</html>

Javascript:

代码语言:javascript
复制
var chosenModule = null;
document.getElementById("chooser").style.display = "none";

for (let i = 1; i <= 4; i++) {
  document.getElementById("load-" + i).addEventListener("click",
    function() {
      chosenModule = i;
      document.getElementById("chooser").style.display = "block";
    });
}

for (let i = 1; i <= 4; i++) {
  document.getElementById("app-" + i).addEventListener("click",
    function() {
      loadApp(i);
      document.getElementById("chooser").style.display = "none";
      document.getElementById("app-" + i).style.display = "none";
    });
}

function loadApp(i) {
  document.getElementById('module-' + chosenModule).innerHTML = "App" + i;
}

下面是我的问题:如何使用django模板/Jinja2 2实现这一点?

现在我看到了这篇文章:Django: Loading another template on click of a button,然而,它的目标是加载一个全新的页面。另一方面,我想额外加载所有的应用程序的所有资源,只有在按钮单击后,而不必重新加载页面本身。我知道{%包括'app.html‘%},但是我如何告诉base.html只在单击一个按钮/通过js代码后才解释这一点?还是“包括”是错误的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-22 09:52:38

实际上,Django模板工作在HTTP协议上,它是无状态。这意味着一旦您呈现了其他模板,就无法获得它!但是,您可以使用ajax请求从get应用程序中获取django模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54824221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档