@Domohod

Как вывести все данные из БД?

Я делаю голосование на Python Django, на главной странице должен выводится результат голосов всех пользователей, однако у меня выводятся результаты только текущего пользователя. Как это исправить?

views.py
def home(request):
    value, create = Choose.objects.get_or_create(voter=request.user)
    context = {
        "value": value,
    }

    return render(request, 'registration/home.html', context)


def black(request):
    if request.user.is_authenticated:
        value, created = Choose.objects.get_or_create(voter=request.user)

        if request.method == 'POST':
            select_action = request.POST['choose']

            if select_action == 'black':
                value.count_black += 1
                value.save()
            else:
                return render(request, 'registration/black.html', {"value": value})

            return redirect("home")


models.py:
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)


html:
<h1 style="color: white">{{ value.count_black }} </h1>


Так, в моей админке сохраняются результаты различных пользователей, однако выводятся голоса только текущего(вошедшего мною). Как вывести весь результат?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
1. Доки (ну или хотя бы статьи) по ORM django читали?
2. Вы код сами писали?
Что-то мне подсказывает, что в обоих случаях - нет, поскольку не понять как работает данный метод, имея даже минимальные знания по теме (да даже просто зная английский и дружа с логикой) очень просто.
Choose.objects.get_or_create(voter=request.user)
Он пытается найти подходящий объект, и если его нет - создает. Вот и все
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
value, create = Choose.objects.get_or_create(voter=request.user)


Может, поэтому?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект