查询django模板中的输出格式

时间:2011-03-02 15:58:58

标签: python django django-models django-templates django-views

我正在尝试在模板

中以下表格式输出查询
RAW.objects.filter(at_date__year='2011',at_date__month='02').values('user','attend').order_by().annotate(total=Count('attend'))

查询输出

[{'user': u'sushanth', 'total': 13, 'attend': u'P'}, {'user': u'sushanthreddy', 'total': 2, 'attend': u'A'}, {'user': u'ram', 'total': 5, 'attend': u'P'}, {'user': u'ram', 'total': 2, 'at_attend': u'PL'}]

在这里,我想让用户在模板中不同,作为不同的标题格式参与,并总计到相应的标题。

    user           P     A   PL

   sushanth        13    2   0
     ram           5     0   2

对此有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

当您使用values子句时,Django将根据您要求的值在SQL中发送DISTINCT短语。所以,你已经只得到了“用户”和“参加”的不同组合。

这个输出有多大?如果您只查看几百行,我建议您只需在Python中迭代字典并创建汇总。如果您正在寻找更多,那么有一些选择。可能我推荐的是创建一个使用post_save信号填充的汇总模型/表,其中包含每个用户的P,A和PL信息,以及用户唯一的信息。然后,您只需查询汇总表并吐出数据。

基本上你创建一个看起来几乎与输出完全相同的表:四列(当然不包括主键)。然后,每次保存当前表中的记录时,它都会将相应的数字写入汇总表中的正确列。