【发布时间】:2010-01-25 11:50:45
【问题描述】:
感谢对上一个问题的一些出色帮助,我设法将我的查询放在一起。一切正常运行,节省了一个问题。
careers = Career.objects.filter(job__dwarf__user = 1).annotate(dwarves_in_career = Count('job__dwarf'))
在我看来,这正是我想要的,当我像这样在模板中循环它时:
{% for career in careers reversed %}
<li>{{ career.name }}: {{ career.dwarves_in_career }}</li>
{% endfor %}
我得到了我所期望的。我的问题是上面的代码只会返回有矮人的职业。我需要它来返回所有个职业:
Unassigned: 1
Construction: 1
Crafting: 2
Gathering: 0
Farming: 0
是我的预期结果。相反,最后两行不存在,因为我正在过滤特定用户。我知道为什么会这样,我想弄清楚的是如何让查询返回所有职业,即使特定用户的侏儒计数为 0。
【问题讨论】:
-
+1 表示
dwarves_in_career。头脑难以置信。
标签: django postgresql django-models