我有一个包含字段date
和value
的对象的查询集。
我需要使用数组[[date_1, value_1],[date_2,value_2],...,[date_n,value_n]]
填充模板。
当每个对象有多个字段时,这怎么可能?
我试过了
MyModel.objects.values_list('date', 'value')
但date
以日期时间格式打印(例如datetime.date(2013, 9, 21)
),值打印为十进制(例如Decimal('72495.0')
)。我需要在flot.js图表中。
答案 0 :(得分:1)
MyModel.objects.values_list('date', 'value', flat=True)
答案 1 :(得分:0)
您可以使用列表理解:
[(str(my_record.date), str(my_record.value)) for my_record in MyModel.objects.all()]
事实上,通过这种方式,您可以根据需要转换数据。
答案 2 :(得分:0)
import calendar
import json
raw_data = MyModel.objects.values_list('date', 'value')
result = []
for date, value in raw_data:
result.append([calendar.timegm(date.timetuple()) * 1000,
float(value)])
要在模板中使用结果,请先将其序列化为JSON,然后将data
传递给模板
data = json.dumps(result)
在模板中
var data = {{ data|safe }};
此外: