在本地存储中更容易插入Django返回结果的方法

Jas*_*son 2 django local-storage

我有一个页面设置将Django数据库查询的结果加载到下拉列表中.在选择项目时,生成具有相关数据的表格.

鉴于视图方法

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

{% for org in parentorg_list %}
  localStorage.setItem("{{org.parentorg}}", "{{org.parentorgName}}");
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

有没有办法将项目添加到localstorage而不使用Django生成约500行重复localStorage.setItem()?或者我最好将索引返回转换为JSON列表进行解析?

Yar*_*nST 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)
Run Code Online (Sandbox Code Playgroud)

在数组的模板循环中:

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

(我实际上没有测试过代码但它应该工作)