Django REST框架:不同序列化对象的列表?

克里斯

我有三个不同类型的对象:RawArticleRawPatentRawGrant

我有出色的序列化程序,其基类为serializers.ModelSerializer

如果我检索到一个查询集,则RawArticle可以使用将该查询集直接传递给序列化器,many=True并且输出为标称值:

[{"save_link": "...", "published": "2014-01-18T20:39:54.086Z", }, {"save_link": "...", "published": "..."}, ...]

此响应是从以下代码生成的:

return Response(RawArticleSerializer(articles, many=True).data)

现在,我有了三个不同的对象,我想像上面一样将它们链接在一起,但是要与它们各自的对象链接在一起。

到目前为止,我一直没有成功。我最初的想法是简单地创建序列化对象的列表,然后将其返回(当然是序列化的),如下所示:

    all_latest = user_latest(request)['latest_articles']

    available_serializers = {RawArticle: RawArticleSerializer, RawGrant: RawGrantSerializer, RawPatent: RawPatentSerializer}
    serialized = []
    for article in all_latest:
        serialized.append((available_serializers[type(article)](article, many=False)).data)

    return Response(str(serialized))

上面的代码不返回JSON,并且日期时间未转换为字符串的实际日期和时间。

我最近的尝试是使用json.dumps和simplejson,并且都提出了一个TypeError说法:

日期时间对象不可序列化。

任何提示将不胜感激。

克里斯

Sunny的答案将以字符串形式返回JSON(由双引号引起来)。为了避免这种情况,返回列表可以满足我的需要:

    serialized = []
    AVAILABLE_SERIALIZERS = {RawArticle: RawArticleSerializer, RawGrant: RawGrantSerializer, RawPatent: RawPatentSerializer}
    for article in articles:
        serialized.append((AVAILABLE_SERIALIZERS[type(article)](article, many=False)).data)

    return Response(serialized)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django REST Framework:不同序列化对象的列表?

来自分类Dev

Django rest框架在同一列表中的不同序列化器

来自分类Dev

如何在序列化数据中附加对象列表?在 Django Rest 框架中

来自分类Dev

django rest 框架,不可序列化

来自分类Dev

不能在序列化程序 django rest 框架中为每个对象使用不同的字段

来自分类Dev

Django rest 框架在序列化程序中检索列表

来自分类Dev

Django REST框架:AttributeError:序列化器对象没有属性“ Meta”

来自分类Dev

使用Django REST框架,如何避免在序列化程序和视图中获取对象?

来自分类Dev

尝试使用Django Rest框架序列化嵌套对象时发生完整性错误

来自分类Dev

Django Rest框架基于自定义类反序列化对象

来自分类Dev

Django REST框架:如何从序列化对象中获取属性?

来自分类Dev

Django REST 框架 - MultiSelectField - TypeError:'set' 类型的对象不是 JSON 可序列化的

来自分类Dev

Django REST框架序列化模型组合

来自分类Dev

实例化时Django REST框架序列化器错误

来自分类Dev

Django Rest框架自定义序列化字段

来自分类Dev

Django REST框架扁平,可读写序列化器

来自分类Dev

在Django Rest框架中修改序列化器的输出

来自分类Dev

序列化Django Rest框架时的其他字段

来自分类Dev

在Django Rest框架中序列化查询集

来自分类Dev

Django REST框架序列化ForeignKey和ManyToManyFields

来自分类Dev

序列化程序,Django rest框架中的权限检查,

来自分类Dev

Mongoengine序列化器错误| Python | Django Rest框架

来自分类Dev

Django REST框架中的TypeError教程1:序列化

来自分类Dev

Django rest框架嵌套序列化无法正常工作

来自分类Dev

Django Rest框架多个外键序列化

来自分类Dev

Django Rest框架中的空序列化响应

来自分类Dev

Django rest框架使用FK序列化模型

来自分类Dev

如何使用Django rest框架反序列化Foreignkey?

来自分类Dev

Django Rest框架在外键上的序列化

Related 相关文章

  1. 1

    Django REST Framework:不同序列化对象的列表?

  2. 2

    Django rest框架在同一列表中的不同序列化器

  3. 3

    如何在序列化数据中附加对象列表?在 Django Rest 框架中

  4. 4

    django rest 框架,不可序列化

  5. 5

    不能在序列化程序 django rest 框架中为每个对象使用不同的字段

  6. 6

    Django rest 框架在序列化程序中检索列表

  7. 7

    Django REST框架:AttributeError:序列化器对象没有属性“ Meta”

  8. 8

    使用Django REST框架,如何避免在序列化程序和视图中获取对象?

  9. 9

    尝试使用Django Rest框架序列化嵌套对象时发生完整性错误

  10. 10

    Django Rest框架基于自定义类反序列化对象

  11. 11

    Django REST框架:如何从序列化对象中获取属性?

  12. 12

    Django REST 框架 - MultiSelectField - TypeError:'set' 类型的对象不是 JSON 可序列化的

  13. 13

    Django REST框架序列化模型组合

  14. 14

    实例化时Django REST框架序列化器错误

  15. 15

    Django Rest框架自定义序列化字段

  16. 16

    Django REST框架扁平,可读写序列化器

  17. 17

    在Django Rest框架中修改序列化器的输出

  18. 18

    序列化Django Rest框架时的其他字段

  19. 19

    在Django Rest框架中序列化查询集

  20. 20

    Django REST框架序列化ForeignKey和ManyToManyFields

  21. 21

    序列化程序,Django rest框架中的权限检查,

  22. 22

    Mongoengine序列化器错误| Python | Django Rest框架

  23. 23

    Django REST框架中的TypeError教程1:序列化

  24. 24

    Django rest框架嵌套序列化无法正常工作

  25. 25

    Django Rest框架多个外键序列化

  26. 26

    Django Rest框架中的空序列化响应

  27. 27

    Django rest框架使用FK序列化模型

  28. 28

    如何使用Django rest框架反序列化Foreignkey?

  29. 29

    Django Rest框架在外键上的序列化

热门标签

归档