python - 返回 JSON 查询集进行搜索
问题描述
我正在尝试编写一个函数来搜索并将其结果以 JSON 格式显示给用户。
目前,我正在从数据库中成功搜索,我可以在产品属性中找到并列出数据库中的数据。但是当我从数据库返回产品列表时,我遇到了显示结果的问题。
def search_titles(request):
if request.method == "POST":
search_text = request.POST['search_text']
else:
search_text = ''
products = Product.objects.filter(title__contains = search_text)
return HttpResponse(json.dump(products), content_type = 'application/json')
我无法向用户显示结果。如何返回产品列表并显示项目?
解决方案
我会看看jsonresponse:
def search_titles(request):
if request.method == "POST":
search_text = request.POST['search_text']
else:
search_text = ''
products = Product.objects.filter(title__contains = search_text)
products = list(products) # important: convert the QuerySet to a list object
return JsonResponse({'products':products})
使用 HttpResponse:
def search_titles(request):
if request.method == "POST":
search_text = request.POST['search_text']
else:
search_text = ''
products = Product.objects.filter(title__contains = search_text)
products = serializers.serialize('json', products)
return HttpResponse(json.dumps(products), content_type = 'application/json')
注意:我使用了 json.dumps() 而不是 json.dump() ,它需要一个文件对象并将 JSON 转储到它。
推荐阅读
- opengl-es - 什么是 OpenGL 和 WebGL2 中的顶点数组?
- c# - 插入电子邮件时出错
我正在尝试将表格插入电子邮件。我在 6 行代码中出现以下错误(以“body”开头,结尾 onavgErrorOutStDev +=“/table”)。错误是:
“赋值的左侧必须是变量、属性或索引器”。
<table>
开始是在创建/发送电子邮件之前执行的方法。如何修复错误?MailMessage
- bash - Makefile:特定于目标的变量总是被解析
- notepad++ - Notepad ++ 删除每 150 个字符后的回车和广告新行
- python - numba 不并行化范围
- vba - “行句柄无效”错误、Excel、VBA、SharePoint 列表自动化
- python - 单元测试:断言异常处理函数调用
- android - 如何将 AnimationDrawable 保存为 GIF?
- facebook - FB Messenger 机器人链接不会将用户重定向到 Messenger
- azure - Azure EventGrid 验证 URL