在Django中序列化小数点时出错:'ValuesListQuerySet'对象没有'_meta'属性
有没有办法把Django中的FloatField模型实例进行序列化?我在一个管理命令中有以下代码:
def chart_data(request):
i = 1
chart = open_flash_chart()
chart.title = t
for manager in FusionManagers.objects.all():
net_data = manager.netio_set.values_list('Net', flat=True)
clean = serializers.serialize('json', [ net_data, ])
new = line()
new.values = clean
locals()["graph_" + str(i)] = new
chart.add_element(locals()["graph_" + str(i)])
i = i + 1
return HttpResponse(chart.render())
但是我遇到了一个错误:'ValuesListQuerySet'对象没有'_meta'这个属性。'Net'字段是浮点数类型,值被限制到小数点后两位,所以我得到的值是400.23等等……这些可以被序列化吗?
1 个回答
1
Django的序列化模块只能处理完整的Django对象的列表或查询集;
ValuesListQuerySet
里面是元组,而不是Django对象。
我在引用Django的一个评论,关于问题 #8090。如果你想使用Django自带的序列化功能,你需要获取一个QuerySet
。如果不这样做,你就得使用自定义的序列化模块。