我想做一些很简单的事情,但找不到方法去做。
models.py:
class Reward:
name = models.CharField(max_length=50)
# other stuff
class UseRewardEvent:
reward = models.ForeignKey(Reward)
# other stuff最后,我想打印一个带有奖励名称的表和这个奖励名称的事件数量。
例如
如果UseRewardEvent.objets.all()包含3个对象,其链接的reward.name是:
Reward.objects.all()包含3个对象,其名称为:
这应该会在我的模板中打印一个包含使用过的奖励的表格,如:
非常感谢你的帮助。
发布于 2014-02-27 14:07:57
这就是聚合的目的。
from django.db.models import Count
Reward.objects.annotate(use_count=Count('userewardevent'))发布于 2014-02-27 15:08:53
for reward in Reward.objects.all():
print reward,'->',len(reward.userewardevent_set.all())模板中使用
{% for reward in Reward.objects.all %}
<p>{{ reward }} --> {{ reward.userewardevent_set.all|length }}</p>
{% endfor %}使用reward.userewardevent_set获取相关信息,它是一个RelatedManager,充当reward.objects
更有效率根据丹尼尔罗斯曼,thx!
for reward in Reward.objects.all():
print reward,'->',reward.userewardevent_set.count()模板中使用
{% for reward in Reward.objects.all %}
<p>{{ reward }} --> {{ reward.userewardevent_set.count }}</p>
{% endfor %}https://stackoverflow.com/questions/22070832
复制相似问题