在Javascript中迭代django创建的对象列表,这可能吗?Javascript中的模板语言

在Javascript中迭代django创建的对象列表,这可能吗?Javascript中的模板语言,javascript,jquery,python,html,django,Javascript,Jquery,Python,Html,Django,我的站点无法成功运行在django中为我已发送到页面的列表模型创建的for循环。我是根据我发现的东西和其他一些东西。但是现在。。。我的浏览器(谷歌浏览器,如果有帮助的话)似乎无法呈现我试图在html文件上用javascript运行的{%for%}循环 我有两个python/django创建的两个列表模型,booklist\u希腊文和booklist\u拉丁文,它们被发送到我的textlist.html文件中。这些列表包含已排序的2元组,每个元组的第一个元素是图书的标题,第二个元素是图书的类型。在

我的站点无法成功运行在django中为我已发送到页面的列表模型创建的for循环。我是根据我发现的东西和其他一些东西。但是现在。。。我的浏览器(谷歌浏览器,如果有帮助的话)似乎无法呈现我试图在html文件上用javascript运行的
{%for%}
循环

我有两个python/django创建的两个列表模型,
booklist\u希腊文
booklist\u拉丁文
,它们被发送到我的
textlist.html
文件中。这些列表包含已排序的2元组,每个元组的第一个元素是图书的标题,第二个元素是图书的类型。在html中使用模板语言来运行for循环在我的html文件的两个部分工作得很好

在我的代码中有一点,我想根据每本书的图书类型过滤
booklist\u希腊文
booklist\u拉丁文
,并使用它填充
元素。当用户单击按钮时,需要进行过滤和填充。所以我认为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(“helloworld!”)那么这确实有效。任何模板语言调用正在迭代的对象,而且非常有趣。。。我的
标记中根本没有运行java代码


所以现在我需要一个替代方案,或者我需要找出我做错了什么。我知道我从一开始就很奇怪。但是在booklist_拉丁语和booklist_希腊语中有没有其他方法可以迭代对象呢?要在每次迭代中检查每个元组中的实际内容,只能在html中使用python。这是因为它在发送到客户端(chrome)之前在服务器上呈现。在您的例子中,js用于处理客户端(chrome)的逻辑。知道这一点,您有两个选择:

  • 使用html中的python循环阅读您的书籍。创建一个过滤器,该过滤器调用呈现页面的操作,但传递一个参数,指定要过滤的内容。Python将对页面进行刷新,因为Python必须重新呈现html
  • javascript要么向服务器发出GET请求,请求获取书籍,要么在页面加载时发送一个json编码的书籍数组。使用js将书籍呈现为html,过滤器调用js函数,该函数将过滤js书籍数组。如果您安装类似jquery的东西,它将非常有用

  • 选项1对您来说可能更容易,django中最有可能的文档向您展示了如何做到这一点。选项2对用户更加友好。

    您只能在html中使用python。这是因为它在发送到客户端(chrome)之前在服务器上呈现。在您的例子中,js用于处理客户端(chrome)的逻辑。知道这一点,您有两个选择:

  • 使用html中的python循环阅读您的书籍。创建一个过滤器,该过滤器调用呈现页面的操作,但传递一个参数,指定要过滤的内容。Python将对页面进行刷新,因为Python必须重新呈现html
  • javascript要么向服务器发出GET请求,请求获取书籍,要么在页面加载时发送一个json编码的书籍数组。使用js将书籍呈现为html,过滤器调用js函数,该函数将过滤js书籍数组。如果您安装类似jquery的东西,它将非常有用

  • 选项1对您来说可能更容易,django中最有可能的文档向您展示了如何做到这一点。选项2对用户更友好。

    好的。为了方便用户,我想选择选项2,但是。。。。天啊,这会很难,因为我还是javascript和django新手。我有jquery。实际上,我以前没有使用过json,需要更好地理解它。如果有任何有用的资源,请随时链接(但如果只是文档……我想我自己会发现这一点)不要强调json,它只是一种编码数据的方式,以便两种语言都能理解它。Javascript不知道python数组是什么,反之亦然,所以他们需要一些可以解码为自己数组格式的东西。在本例中是json。试着用谷歌搜索“用django和jquery构建一个crud页面”,会有这样的视频/文章让你手握。crud代表“创建-读取-更新-删除”。好的。为了方便用户,我想选择选项2,但是。。。。天啊,这会很难,因为我还是javascript和django新手。我有jquery。实际上,我以前没有使用过json,需要更好地理解它。如果有任何有用的资源,请随时链接(但如果只是文档……我想我自己会发现这一点)不要强调json,它只是一种编码数据的方式,以便两种语言都能理解它。Javascript不知道python数组是什么,反之亦然,所以他们需要一些可以解码为自己数组格式的东西。在本例中是json。试着用谷歌搜索“用django和jquery构建一个crud页面”,会有这样的视频/文章让你手握。crud代表“创建-读取-更新-删除”。