Ошибка: AttributeError at / 'QuerySet' object has no attribute 'count_black'
Мне удалось вывести список всех голосов и теперь мне нужно сделать их процентное соотношение, которое я прописал во views.py:
def home(request):
value = Choose.objects.all()
# получаем сумму всех голосов.
sum_black = Choose.objects.aggregate(Sum('count_black'))
sum_white = Choose.objects.aggregate(Sum('count_white'))
sum_purple = Choose.objects.aggregate(Sum('count_purple'))
# считываем проценты
all = value.count_black + value.count_white + value.count_purple
percent_black = int(value.count_black * 100 / all)
percent_white = int(value.count_white * 100 / all)
percent_purple = int(value.count_purple * 100 / all)
context = {
"value": value,
"sum_black": sum_black,
"sum_white": sum_white,
"sum_purple": sum_purple,
"percent_black": percent_black,
"percent_white": percent_white,
"percent_purple": percent_purple
}
return render(request, 'registration/home.html', context)
models.py:
from django.db import models
from django.contrib.auth.models import User
class Choose(models.Model):
count_black = models.PositiveIntegerField(default=0, verbose_name="black")
count_white = models.PositiveIntegerField(default=0, verbose_name="white")
count_purple = models.PositiveIntegerField(default=0, verbose_name="purple")
voter = models.ForeignKey(User, null=True, blank=True, verbose_name='Пользователь',
on_delete=models.PROTECT)
Логика подсчета процентов работает до того, как использую objects.all()
. И тут возникает ошибка, заданная в вопросе:
all = value.count_black + value.count_white + value.count_purple
AttributeError: 'QuerySet' object has no attribute 'count_black'
[30/Dec/2021 14:40:40] "GET / HTTP/1.1" 500 75640
Похоже, из all нельзя взять объекты модели, но что мне делать, если они мне нужны? Помогите пожалуйста.