diff --git a/models.py b/models.py index 57dabd2..3bf42a1 100644 --- a/models.py +++ b/models.py @@ -5,10 +5,7 @@ class Poll(models.Model): pub_date = models.DateTimeField('date published') ballots = models.IntegerField(default=0) def total_votes(self): - v = 0 - for c in self.choice_set.all(): - v += c.votes - return v + return sum(c.votes for c in self.choice_set.all()) def __unicode__(self): return self.question @@ -17,9 +14,7 @@ class Choice(models.Model): choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) def percentage(self): - if self.poll.ballots == 0: - return 0 - return self.votes*100/self.poll.ballots + return 0 if self.poll.ballots == 0 else self.votes*100/self.poll.ballots def __unicode__(self): return self.choice_text diff --git a/views.py b/views.py index ea26f4a..07e4071 100644 --- a/views.py +++ b/views.py @@ -33,13 +33,13 @@ class ResultsView(generic.DetailView): def vote(request, poll_id): p = get_object_or_404(Poll, pk=poll_id) for counter,choice in enumerate(p.choice_set.all()): - try: - request.POST['choice'+str(counter+1)] - except (KeyError): - pass - else: - choice.votes += 1 - choice.save() + try: + request.POST[f'choice{str(counter + 1)}'] + except (KeyError): + pass + else: + choice.votes += 1 + choice.save() p.ballots += 1 p.save() return HttpResponseRedirect(reverse('approval_polls:results', args=(p.id,)))