【问题标题】:Serializing decimal points in Django, getting error: 'ValuesListQuerySet' object has no attribute '_meta'在 Django 中序列化小数点,出现错误:“ValuesListQuerySet”对象没有属性“_meta”
【发布时间】:2010-10-13 05:54:42
【问题描述】:

有没有办法可以在 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' 字段是浮点字段,值被过滤到小数点后 2 位,所以我得到 400.23 等……这些可以序列化吗?

【问题讨论】:

    标签: python django json django-models


    【解决方案1】:

    Django 序列化模块仅适用于完整 Django 对象的列表/查询集; ValuesListQuerySet 包含元组,而不是 Django 对象。

    我引用了附加到 Django ticket #8090 的评论。如果你想使用 Django 的内置序列化,你需要得到一个QuerySet。如果没有,您将不得不使用自定义序列化模块。

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 2011-12-27
      • 2011-06-23
      • 1970-01-01
      • 2012-02-22
      • 2022-09-23
      • 2019-09-25
      • 2020-07-05
      相关资源
      最近更新 更多