AAA*_*AAA 0 django django-views
我想数一下我列出的对象.
我想计算每个标题中的问题数量.
这就是我的models.py设置方式:
# Edited out
Run Code Online (Sandbox Code Playgroud)
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......
Run Code Online (Sandbox Code Playgroud)
我也需要为创作者和角色做这件事,除了他们与问题的多对多关系,并且视图基本上看起来与 def titles
谢谢.
DTi*_*ing 16
要获取每个标题的相关问题,您可以使用向后关系查找.由于未在创建关系的问题模型中指定相关名称,因此使用_set附加到相关模型的下层名称来执行查找.在你的情况下issue_set.
some_title = Title.object.get(pk=1)
some_title.issue_set.count()
Run Code Online (Sandbox Code Playgroud)
但是,这将为您要计算的每个标题执行数据库命中.
您可能希望使用计数来标注标题qs. docs
from django.db.models import Count
titles_with_counts = Title.objects.all().annotate(issue_count=Count('issue__id'))
Run Code Online (Sandbox Code Playgroud)
现在,该qs中的每个标题都可以通过使用来计算 .issue_count
for title in titles_with_counts:
print title.title, title.issue_count
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7729 次 |
| 最近记录: |