在Django中序列化小数点,得到错误:'ValuesListQuerySet'对象没有属性'_meta'

时间:2010-10-13 05:54:42

标签: python django json django-models

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

1 个答案:

答案 0 :(得分:1)

  

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

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