将python列表转换为特定的javascript格式

时间:2018-10-28 22:39:55

标签: python django list

使用Django,我有以下模型:

"[A-Z]", "X"

此表中有以下数据:

class Score(models.Model):
    team = models.ForeignKey(Team, on_delete=models.CASCADE)
    month = models.CharField(max_length=255)
    points = models.FloatField(null=True, blank=True)

所以,我认为我可以运行:

Team    Date    Points
A   Jan 2015    100
A   Feb 2015    150
A   Mar 2015    200
B   Jan 2015    120
B   Feb 2015    200
B   Mar 2015    300
C   Jan 2015    111
C   Feb 2015    122
C   Mar 2015    133

这将返回一个包含所有上述记录的列表。到目前为止,一切都很好。但是,我想将其显示为javascript中的图形。这需要非常特定的格式。首先,我需要将所有x轴标签分开(“ 2015年1月”,“ 2015年2月”,“ 2015年3月”),然后将所有得分按团队分组。这就是最终的js外观:

data = Score.objects.all()

这是棘手的地方。我是python的新手,不确定执行此操作的正确方法。我假设我应该在我的视图中准备变量,而不是在模板中做很多事情。但是我应该怎么做呢?是否创建两个列表(一个用于x轴标签,另一个用于数据)?我是否使用多维列表?还是字典?

1 个答案:

答案 0 :(得分:1)

您希望数据以JSON格式表示。为此,应该对从data = Score.objects.all()收集的数据进行 序列化 ,并以JSON的形式传递给模板。

小例子:

from django.core import serializers

def get_modelAPI(request):
    SomeModel_json = serializers.serialize("json", SomeModel.objects.all())
    data = {"SomeModel_json": SomeModel_json}
    return JsonResponse(data)

有关更多信息,您应该阅读this

相关问题