【发布时间】:2015-07-26 09:50:23
【问题描述】:
我在 Django 1.8 中工作,但很难找到现代的方法来做到这一点。
这是我得到的,基于谷歌搜索和this blog post:
results = PCT.objects.filter(code__startswith='a')
json_res = []
for result in results:
json_res.append(result.as_dict())
return HttpResponse(json.dumps(json_res), content_type='application/json')
但是这给了我'PCT' object has no attribute 'as_dict'。
现在肯定有更整洁的方法吗?
我想知道是否可以使用JSONResponse,但令人沮丧的是,文档没有给出如何将 JSONRespose 与查询集一起使用的示例,这一定是最常见的用例。我试过这个:
results = PCT.objects.filter(code__startswith='a')
return JsonResponse(results, safe=False)
这给出了[<PCT: PCT object>, <PCT: PCT object>] is not JSON serializable。
【问题讨论】:
-
但肯定自 2010 年以来事情一定变得更简单了?
-
他们肯定有,并且在重复问题的第一个答案中引用了它。
-
好的,所以链接到这里:stackoverflow.com/questions/2428092/…,它显示了如何使用 JSONResponse 返回字典。但我有一个 QuerySet,而不是字典。我正在尝试
return JsonResponse(results.values(), safe=False),但这给了我一个TypeError: not JSON serializable。有什么想法吗? -
我真的不想变得困难,但考虑到转向前端应用程序,这似乎是人们可能想要在 Django 中做的最常见的事情之一:我很惊讶很难弄清楚该怎么做。