Поле 'id' ожидало число, но получило 'on' - PullRequest
0 голосов
/ 08 мая 2020

Я делаю проект, включенный в Django Документацию.

Когда я ввожу URL http://localhost:8000/polls/1/vote/, я получаю сообщение об ошибке в строке ниже:

недопустимый литерал для int () с базой 10: 'on'

Строки ниже - мое определение представления:

def vote(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = question.choice_set.get(pk=request.POST['choice'])
    except(KeyError, Choice.DoesNotExist):
        return render(request, 'polls/detail.html', {
            'question': question,
            'error_message': "You didn't select a choice",
        })
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))

1 Ответ

1 голос
/ 08 мая 2020

вы отправили значение "on" в почтовом сообщении с полем request.POST["choice"], которое не является допустимым pk для selected_choice = question.choice_set.get(pk=request.POST['choice']), которое ожидает число

...