gpt4 book ai didi

json - 以JSON格式返回QuerySet吗?

转载 作者:行者123 更新时间:2023-12-04 16:21:17 26 4
gpt4 key购买 nike

我正在Django 1.8中工作,无法找到实现此目标的现代方法。

这是我在Googling和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与queryset一起使用的示例,这必须是最常见的用例。我已经试过了:
results = PCT.objects.filter(code__startswith='a')
return JsonResponse(results, safe=False)

这给出了 [<PCT: PCT object>, <PCT: PCT object>] is not JSON serializable

最佳答案

最简单的解决方案,无需任何其他框架:

results = PCT.objects.filter(code__startswith='a').values('id', 'name')
return JsonResponse({'results': list(results)})

返回 {'results': [{'id': 1, 'name': 'foo'}, ...]}
或者,如果您只需要这些值:
results = PCT.objects.filter(code__startswith='a').values_list('id', 'name')
return JsonResponse({'results': list(results)})

返回 {'results': [[1, 'foo'], ...]}

关于json - 以JSON格式返回QuerySet吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com