【问题标题】:How can i get list of Django ManyToManyField like this? [closed]我怎样才能得到这样的 Django ManyToManyField 列表? [关闭]
【发布时间】:2021-07-20 10:22:55
【问题描述】:

消息

<QuerySet [<Msg: home : Dusra msg from admin>, <Msg: home : good>, <Msg: home : k>, <Msg: home : k>, <Msg: home : hi>, <Msg: home : Yello>, <Msg: home : Good>, <Msg: home : lets se>]>

msgs.values('content','likes') # likes is a ManyToManyField

<QuerySet [{'content': 'Dusra msg from admin', 'likes': UUID('472ab5e5-ddda-4d18-b229-67f7d0f3d7fb')}, {'content': 'Dusra msg from admin', 'likes': UUID('8bbb16f2-11a7-4d52-818b-acbdcf518810')}, {'content': 'Dusra msg from admin', 'likes': UUID('d1499fb6-4fd6-4ec1-abda-a507c1339d93')}, {'content': 'good', 'likes': None}, {'content': 'k', 'likes': None}, {'content': 'k', 'likes': UUID('36d0c720-9169-4d66-8afa-2ff2ffb30166')}, {'content': 'hi', 'likes': None}, {'content': 'Yello', 'likes': None}, {'content': 'Good', 'likes': None}, {'content': 'lets se', 'likes': UUID('36d0c720-9169-4d66-8afa-2ff2ffb30166')}, {'content': 'lets se', 'likes': UUID('68f85e0c-fda1-4856-894c-b9c52fda5669')}, {'content': 'lets se', 'likes': UUID('d1499fb6-4fd6-4ec1-abda-a507c1339d93')}]>

我想将上面的输出转换为下面的输出

    <QuerySet [{'content': 'Dusra msg from admin', 'likes': ['472ab5e5-ddda-4d18-b229-67f7d0f3d7fb', '8bbb16f2-11a7-4d52-818b-acbdcf518810', 'd1499fb6-4fd6-4ec1-abda-a507c1339d93')}, {'content': 'good', 'likes': None}]}

【问题讨论】:

  • 这跟 JSON 有什么关系?
  • 如果您的目标是序列化/反序列化,请查看django-rest-framework
  • 我必须将最后的输出以 json 格式发送到前端

标签: python python-3.x django django-models


【解决方案1】:

如果你的数据库是 PostgreSQL,你可以使用ArrayAgg。它将结果聚合为字段中的列表。检查此文档:

https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/aggregates/

【讨论】:

  • 我使用的是默认sqlite
猜你喜欢
  • 2014-08-25
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 2023-03-21
  • 2011-07-16
相关资源
最近更新 更多