2013-06-21 17 views
1

我有一個頁面設置爲將Django數據庫查詢的結果加載到下拉列表中。在選擇一個項目時,會生成一個包含相關數據的表格。在localstorage中插入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 %} 

是有辦法來添加項目到localStorage的不Django的生成〜500行重複localStorage.setItem()的?或者,我會更好轉換索引返回到JSON列表解析?

+0

我認爲這將是有用的http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage –

回答

4

製作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); 
} 

(我沒有實際測試過的代碼,但它應該工作)