我设置了一个页面,用于将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列表进行解析会更好吗?
使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);
}
(我实际上没有测试代码,但它应该可以工作)