Django 以 JSON 格式返回单个记录

Posted

技术标签:

【中文标题】Django 以 JSON 格式返回单个记录【英文标题】:Django return a single record as JSON 【发布时间】:2011-01-16 09:19:09 【问题描述】:

我创建了一个表单,用于在我们的网络管理员中添加有关客户的注释。我正在使用 jQuery 和 Ajax 提交 for。我希望 Django 视图返回新添加的注释/记录,以便我可以将其附加到客户注释表中。我的 Ajax 发送正在工作,并且正在保存笔记,但我无法显示结果。

我已经尝试了以下 3 行(分别):

serializers.serialize("json", Note.objects.get(id=new_note.id))
serializers.serialize("json", new_note)
return HttpResponse(simplejson.dumps(new_note), mimetype='application/javascript')

前2个各产生:

'Note' object is not iterable

第三个给了我:

<Note: Note object> is not JSON serializable

我实际上并不关心我返回对象的格式,只要我可以使用 jQuery 接收和显示记录的每个字段。

谢谢。

【问题讨论】:

【参考方案1】:

来自the docs:

serialize 函数的参数是将数据序列化为的格式(请参阅序列化格式)和要序列化的 QuerySet。

使用filter() 而不是get()

【讨论】:

谢谢。我阅读了文档,发现它必须是一个查询集,我没有意识到它可以与 .filter() 一起使用。 我真的认为 neoprolog 的答案正是您在这种情况下所寻找的。不是每个人都拥有他们想要序列化的那一刻想要使用的查询集。【参考方案2】:

用途:

serializers.serialize("json", [new_note])

(注意查询对象周围的方括号)

【讨论】:

以上是关于Django 以 JSON 格式返回单个记录的主要内容,如果未能解决你的问题,请参考以下文章

Django Rest Framework:默认以 JSON 格式输出到浏览器

57. Django 2.1.7 查询数据返回json格式

搜索并返回 cloudkit 记录的单个字段

在单个 GraphQL 突变(graphene-django)中返回已删除对象的数组

Django 模板标签 - 返回多个值或对象

django 怎么将查询到的数据以json形式返回