我有一个像这样的模型:
class Question(models.Model):
#something
class Answer(models.Model):
question = models.ForeignKey(Question)
points_achieved = models.PositiveSmallIntegerField()
现在,我要查询points_achieved的分布:对于每个问题,我想知道多少得分为0分,1分等。在python中,我将按以下步骤进行操作:
dists = []
for q in Question.objects.all():
dist = defaultdict(int)
for answer in q.answer_set.all():
dist[answer.points_achieved]+=1
dists.append(dist)
如何使用Django的查询方法完成相同的任务?
试试这个
from django.db.models import Count
Answer.objects.all().values('question', 'points_achieved').annotate(total=Count('points_achieved')).order_by('total')
资料来源:Django Aggregation
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句