Django Total Children Count 跨查询

Django Total Children Count across query

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

获取每个 SOW 计数的课程
@register.simple_tag
def lesson_sow_count(value):
  count = Lesson.objects.select_related().filter(schemeofwork_id=value).count()
  return count

有没有简单的方法来做到这一点。查看方法已经将 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)

感谢您花时间和精力回答任何问题

克里斯

我不确定它的全部内容,但您似乎可以使用一个简单的查询:

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

但是因为我没有真正理解你在做什么,所以我不确定这就是答案...