使用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轴标签,另一个用于数据)?我是否使用多维列表?还是字典?
答案 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。