@Domohod

Почему возникает ошибка IntegrityError at / UNIQUE constraint failed: registration_choose.id?

Делаю сайт на джанго. Я делаю голосование и хочу, чтобы в бд попадал проголосовавший пользователь, для чего пишу voter.request.user. Но из-за этого возникает эта ошибка. Как мне ее исправить?
django.db.utils.IntegrityError: UNIQUE constraint failed: registration_choose.id
[28/Dec/2021 20:11:17] "GET / HTTP/1.1" 500 17808


views.py:

def home(request):
    value, created = Choose.objects.get_or_create(voter=request.user, pk=1)
    context = {
        "value": value,
    }

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



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

    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")


    context = {"value": value}
    return render(request, 'registration/black.html', context)


models.py:

from django.contrib.auth.models import User
from django.db import models


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, verbose_name='Пользователь', 
    on_delete=models.PROTECT)
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
pk=1 в методе get_or_create лишний
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы