【问题标题】:Serializing (to json) a dictionary containing a Django queryset which contains DecimalField items序列化(到 json)包含 Django 查询集的字典,该查询集包含 DecimalField 项
【发布时间】:2021-09-15 02:10:02
【问题描述】:

我有一个 Django 查询集,其中包含模型对象,其中一些字段是十进制对象,这是 json 中不存在的格式。我知道如何使用 Django 序列化程序将此查询集转换为 json。

但是,我需要在将查询集发送到前端之前将其包装在字典中,如下所示:

{ "type": "stream1", "data": queryset }

序列化程序在这里不起作用。错误是“AttributeError:‘str’对象没有属性‘_meta’”。我明白为什么会这样。

我尝试过的(嵌套的 json 对象):

我序列化了查询集,然后在将字典转换为 json 之前将其添加到字典中。但这并不优雅,因为它需要前端先解析字典,然后再解析其中的序列化值。体验不佳。

如何一次性序列化包含 Django 查询集的字典?

【问题讨论】:

    标签: python json django serialization


    【解决方案1】:

    这里没有收到我的问题的答案,但this(Django 部分)解决了我的问题,即使它不是在 Decimal 对象的上下文中,而是在 datetime 对象的上下文中。

    DjangoJSONEncoder ftw.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2020-04-17
      • 1970-01-01
      • 2015-04-20
      • 2015-01-28
      相关资源
      最近更新 更多