我正在循环遍历模板文件中的一个对象,以便访问与特定问题的每个选择相关联的投票值。
我已经研究了创建变量的不同方法,我可以在0初始化,并在每个循环中增加所选选项的投票数,但是当我试图使用它来增加时,它会破坏我的代码。
当前,循环正在输出选择的值。在页面上的投票,但我想找到一个方法来获得总数,而不是。我也试过
#View that informs said template:
class PollDelete(DeleteView):
template_name = 'polls/delete.html'
success_url = "/polls"
def get_object(self):
question = get_object_or_404(Question, pk=self.kwargs['pk'])
return question
#template :
<form method="post">{% csrf_token %}
<p>Are you sure you want to delete the poll "{{ get_object }}"?</p>
{% with var1=0 %}
{{ var1 }}
{% for choice in question.choice_set.all %}
{{ choice.votes }}
{% endfor %}
{% endwith %}
<input type="submit" value="Confirm">
</form>
只需在将问题传递给上下文之前对其进行注释。你可以这样做:
from django.db.models import Sum
class ResultsView(generic.DetailView):
model = Question
template_name = 'polls/results.html'
def get_object(self):
queryset = Question.objects.all().annotate(total_votes=Sum('choice__votes'))
question = get_object_or_404(queryset, pk=self.kwargs['pk']) # get_object_or_404 can take a queryset
return question
现在在模板中,您可以简单地使用question.total_votes
来获得总票数。