Django Total Children统计查询

时间:2015-06-08 18:41:38

标签: django count children

我试图从一组父对象中获取子项的总数。更好地解释这一点。我有一套SOW,属于年级组。每个SOW都有许多课程。我想要每年的课程总数。我目前正在使用过滤器获取每个SOW计数的课程

@register.simple_tag
def lesson_sow_count(value):
  count = Lesson.objects.select_related().filter(schemeofwork_id=value).count()
  return count

有一种简单的方法可以做到这一点。 view方法已经将SOW拆分为年份组并对它们进行排序,以便我可以在标签中显示它们,以便我坚持如何改变它。

def index(request):
    allsow = dict()
    allsow['Year 7'] = SchemeOfWork.objects.order_by('order').filter(yeargroup=7)
    allsow['Year 8'] = SchemeOfWork.objects.order_by('order').filter(yeargroup=8)
    allsow['Year 9'] = SchemeOfWork.objects.order_by('order').filter(yeargroup=9)
    template = loader.get_template('planner/index.html')
    context = RequestContext(request, {
        'allsow': sorted(allsow.iteritems()),
    })
    return HttpResponse(template.render(context)

感谢您在任何答案中花费时间和精力

克里斯

1 个答案:

答案 0 :(得分:0)

我不确定它的全部含义,但似乎你可以使用一个简单的查询:

allsow = SchemeOfWork.objects.filter(yeargroup_gte=7, yeargroup_lte=9).order_by('yeargroup', 'order')

然后,您将使用此处给出的示例中的注释来计算:https://docs.djangoproject.com/en/1.8/ref/models/querysets/#annotate

但由于我没有真正得到你正在做的事情,我不确定答案是否正确......