我尝试了以下过程,但查询集已完全更改其格式。
$('#jstree').jstree({
'core' : {
'data' :{{data}} # here main issue
},
plugins : ["wholerow","unique","dnd","sort","state","contextmenu","contextmenubtn","themes"]
}).on("ready.jstree", function (e, data) { data.instance.open_all(); });
我作为回应发送的查询集:
data = Buildkb4.objects.values("id","text","parent")
return render(request,"registration/basetest.html",
{"data": data})
输出:
没有表结构,也没有数据,在页面源代码上,我得到了以下查询输出:
data= <QuerySet [{'text': 'PKM', 'parent': 0, 'id': 1}, {'text': 'develop', 'parent': 1, 'id': 2}, {'text': 'social', 'parent': 1, 'id': 3}]>
答案 0 :(得分:0)
我对jstree和django有一些基本的经验,这种解决方案可能会对您有所帮助
在这里,您直接将查询集传递给模板中的数据,这是不可接受的。它接受json数据类型。
设计一个视图,该视图将返回您在jstree中所需的json数据。
from django.http import JsonResponse
def table(request):
data = table.objects.values("column1","column2")
data_list = list(data)
return JsonResponse(data_list,safe=False)
现在在您的模板中添加:
var arraycollection =(function() {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': "####### url to acces data"
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
现在为jstree中的数据分配arraycollection