【发布时间】:2017-11-26 11:56:07
【问题描述】:
我的站点无法运行在 django 中为我发送到页面的列表模型创建的成功 for 循环。我的出发点是Derek's answer in this stackoverflow question 和我发现的其他一些东西。但是现在......我的浏览器(如果有帮助的话,谷歌浏览器)似乎无法呈现我试图在我的 html 文件上以 javascript 运行的{% for %} 循环。
我有两个 python/django 创建了两个列表模型,booklist_greek 和 booklist_latin 发送到我的 textlist.html 文件。这些列表包含已排序的 2 元组,每个元组将书名作为第一个元素,将书的类型作为第二个元素。在 html 中使用模板语言运行 for 循环在我的 html 文件中的两个部分都可以正常工作。
在我的代码中有一点,我想根据每本书的书型过滤booklist_greek 和booklist_latin,并使用它来填充<select> 元素。当用户单击按钮时,需要进行此过滤和填充。所以我认为 javascript 是必要的……但我还需要模板语言以某种方式过滤列表。
我是这样接近它的。但这不起作用。
var latinBooks = $("#latinTextsDropDown");
$("#latinTextsDropDown").children().remove();
{% for each in booklist_latin %};
var bookTitle = {{ each.0 }};
var bookType = {{ each.1 }};
if (bookType == filteringType) {
var opt = document.createElement("option");
opt.value = bookTitle;
opt.name = bookType;
...
$("#latinTextsDropDown").appendChild(opt);
}
{% endfor %};
我什至尝试将 {% for %} 循环的内容减少为以下内容:console.log({{ each.0 }}) 但也失败了。但是,如果我让 for 循环不包含模板语言,例如,如果它只有 console.log("hello world!");,那么它实际上可以工作。对正在迭代的对象的任何模板语言调用,有趣的是......我的<script> 标记中根本没有Java 代码运行。
所以现在我需要一个替代方案,或者我需要弄清楚我做错了什么。我知道我所做的事情从一开始就很奇怪。但是还有另一种方法可以遍历 booklist_latin 和 booklist_greek 中的对象吗?并在每次迭代中检查每个元组中的实际内容?
【问题讨论】:
标签: javascript jquery python html django