数ヶ月前にDjangoに戻ってきて、チュートリアルで作成した投票用アプリケーションに戻ってきました。総投票数とパーセンテージを追加しました。パーセンテージは、と同様に、特定の投票選択の投票総数の何パーセントを表示します。エラーも何もない。それはまったく表示されません。つまり、パーセンテージ以外はすべてが表示されます。私がテンプレートに書いたことのないように!Djangoテンプレートが正しく表示されない
results.html:
<h1>{{ poll.question }}</h1>
<ul>
{% for choice in poll.choice_set.all %}
<li>{{ choice.choice }} - {{ choice.percentage }} ({{ choice.votes }}) </li>
{% endfor %}
</ul><br /><br />
<p>Total votes for this poll: {{ total }} </p>
views.py:
def results(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
choices = list(p.choice_set.all())
total_votes = sum(c.votes for c in choices)
percentage = {}
for choice in choices:
vote = choice.votes
vote_percentage = int(vote*100.0/total_votes)
choice.percentage = vote_percentage
return render_to_response('polls/results.html', {'poll': p, 'total': total_votes}, context_instance=RequestContext(request))
ヘルプ? :P
おかげ
EDIT:
私はイグナシオのソリューションとはまだありません行くを試してみました。
ありがとう、それはトリックでした!しかし、なぜ2回クエリを実行したのですか?値がchoice.percentageに保存されていませんでしたか? – Lockhead
パーセンテージはモデルフィールドではないので、選択モデルインスタンスでも 'save'を呼び出すビューには何も表示されません。 –