2

我设置了一个页面来将 Django 数据库查询的结果加载到下拉列表中。选择项目后,会生成一个包含相关数据的表格。

给定视图方法

def index(request):
    parentorg_list = Parentorgs.objects.all()
    context = {'parentorg_list' : parentorg_list}
    return render(request, "app/index.html", context)

{% for org in parentorg_list %}
  localStorage.setItem("{{org.parentorg}}", "{{org.parentorgName}}");
{% endfor %}

有没有办法将项目添加到本地存储而不用 Django 生成约 500 行重复localStorage.setItem()?还是将索引返回转换为 JSON 列表进行解析会更好?

4

1 回答 1

5

使index返回一个json,如下所示:

import json
def index(request):
    parentorg_list = json.dumps([{'key': p.parentorg,'value':p.parentorgName } for p in Parentorgs.objects.all() ]) 
    context = {'parentorg_list' : parentorg_list}
    return render(request, "app/index.html", context)

在数组的模板循环中:

var objects = {{ parentorg_list|escapejs }};
for(var i=0;i < objects.length;i++){
    var obj = objects[i];
    localStorage.setItem(obj.key,obj.value);
}

(我实际上并没有测试代码,但它应该可以工作)

于 2013-06-21T20:07:22.917 回答