Django无法在模板中获得计票

时间:2017-05-10 12:42:29

标签: python django

我正在计算并显示每位用户投了多少票。当我在python控制台中执行它时它会显示给我,但我无法从模板中获取它。

在控制台中:

from football_app.models import Score
from football_app.models import CustomUser

for user in CustomUser.objects.all():
    x = Score.objects.filter(granted_to=user).count()
    print(x)

0
1
1
1
1
1

0因为request.user不允许自己投票。

观点:

def test(request):
    data = dict()
    User = get_user_model()
    for user in User.objects.all():
        count_grades = Score.objects.filter(granted_to=user).count()
        data['count_grades'] = str(count_grades)
    return render(request, 'test.html', data)

的test.html

{% for number_of_votes in count_grades %}
    {{ number_of_votes }}
{% endfor %}

甚至

{{ count_grades }}

它只显示1,就是这样。为什么不为每个用户显示?

1 个答案:

答案 0 :(得分:1)

您需要创建一个列表并附加成绩计数才能显示

data['count_grades'] = []
for user in User.objects.all():
    count_grades = Score.objects.filter(granted_to=user).count()
    data['count_grades'].append(str(count_grades))

执行data['count_grades'] = str(count_grades)将覆盖之前的值。因此,显示了最后一个值1