我是Django的新手。我想计算并显示满足模板中条件的对象数。
我有一个用户模型和帐户模型。用户有一个foreignkey字段帐户,该帐户映射到Account对象。
在模板中,我想计算每个帐户的用户数。
我最接近的是:
{% for account in accounts %}
{% for user in users %}
{% if equal user.account.id account.id %}
{{ user.count }}
{% endif %}
{% endfor %}
{% endfor %}
由于
答案 0 :(得分:4)
在您的模板中,似乎用户字段的定义如下:
class User(models.Model):
.
.
account=models.Foreignkey()
.
如果是这样的话,你可以关注this。
{% for account in accounts %}
Count: {{ account.user_set.count }}
{% for user in account.user_set.all %}
{{ user }}
{% endfor %}
{% endfor %}
答案 1 :(得分:4)
您可以使用视图中的用户计数为您的帐户添加注释。假设用户模型包含account = ForeignKey(Account, related_name='users')
:
accounts = Account.objects.annotate(user_count=models.Count('users'))
这样你只需要一个查询。然后只需在模板中使用以下内容:
{% for account in accounts %}
{{ account.user_count }}
{% endfor %}