gpt4 book ai didi

python - 在 Django 中,如何序列化返回 dict 对象(使用 .values() 创建)的 QuerySet

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:14 25 4
gpt4 key购买 nike

在 Django 1.10 中,我尝试序列化从以下查询获得的查询集:

events_in_period = Event.objects \
.filter(timestamp__gte=start_day,
timestamp__lte=end_day,
request__isnull=False,
name=EventType.COMPLETED) \
.annotate(date=TruncDay('timestamp')) \
.values('date') \
.annotate(completed_count=Count('id')) \
.order_by('date')

最主要的是 .values() 语句,它使该语句返回一个包含 dict 的 QuerySet,而不是 Django 模型实例。

因此以下调用将其序列化

from django.core import serializers
output = serializers.serialize('json', result)

失败并出现以下错误:

AttributeError: 'dict' object has no attribute '_meta'

关于序列化的任何建议,而不省略.values(),因为为了简洁起见,我需要它们。

最佳答案

如果你想将dict对象序列化为json,那么你可以导入json

import json
data = json.dumps(result)

Django 序列化器用于 Django 模型对象和查询集。这就是它寻找 _meta 字段的原因。

关于python - 在 Django 中,如何序列化返回 dict 对象(使用 .values() 创建)的 QuerySet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com