我想计算我列出的对象。
我想计算每个标题中的问题数量。
这就是我的models.py设置方式:
# Edited out
Views.py:
def titles (request):
all_titles = Title.objects.all().order_by('title')
num_titles = Title.objects.all().count()
latest_titles = Title.objects.order_by('-date_added')
title_a = Title.objects.filter(title__startswith='A')
title_b = Title.objects.filter(title__startswith='B')
......etc......
我也需要为创作者和角色执行此操作,除非他们与问题的多对多关系,并且视图基本上与def titles
谢谢。
答案 0 :(得分:16)
要获取每个标题的相关问题,您可以使用向后关系查找。由于您未在创建关系的问题模型中指定相关名称,因此使用附加到相关模型的下层名称的_set
执行查找。在您的情况下issue_set
。
some_title = Title.object.get(pk=1)
some_title.issue_set.count()
但是,这将为您想要计算的每个标题执行数据库命中。
您可能希望使用计数来标注标题qs。 docs
from django.db.models import Count
titles_with_counts = Title.objects.all().annotate(issue_count=Count('issue__id'))
现在,使用.issue_count
for title in titles_with_counts:
print title.title, title.issue_count