我正在计算并显示每位用户投了多少票。当我在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
,就是这样。为什么不为每个用户显示?
答案 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
。