解析Django查询集JSON
我想把一个查询结果处理成可以输出成json格式的数据。不过,我需要让新的jQuery UI自动补全功能也能使用这些数据,而这个自动补全功能需要有 label
、id
和 value
这几个键,才能正常读取数据。
目前我使用的是:
emp_list = Employees.objects.filter(eng_name__icontains=q_term)
json_serializer = serializers.get_serializer('json')()
json_data = json_serializer.serialize
(emp_list, ensure_ascii=False, fields=('eng_name', 'chi_name'))
输出的结果大概是这样的:
[{"pk": 1, "model": "system.employees",
"fields": {"rank": "manager", "eng_name": "Eli"}},
........]
我希望能把它处理成这样的格式:
[{"id": 1, "label": "Eli (manager)", "value": "Eli (manager)"}, ....]
那么,最好的做法是什么呢?
1 个回答
2
在你的视图中构建它,然后把它转成JSON格式
employees_output_list = []
for emp in emp_list:
name_rank_str = "%s (%s)" % (emp.first_name, emp.rank)
emp_dict = {
"id": emp.pk,
"label": name_rank_str,
"value": name_rank_str,
}
employees_output_list.append(emp_dict)
return HttpResponse(json.dumps(employees_output_list))
像这样做,具体的字段名称我不太清楚