@samuser
programmer

Как проверить радиобаттон выбран или не выбран?

есть функция
def vote(request, question_id):
    p = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = p.answer_set.get(pk=request.POST['choice'])
    except (KeyError, Question.DoesNotExist):
        # Redisplay the poll voting form.
        return render_to_response('polls/detail.html', {
            'poll': p,
            'error_message': "You didn't select a choice.",
        }, <b>context_instance=RequestContext(request))</b>
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return redirect('/polls/%s/results' % p.id)

здесь не работает этот исключение как исправить , context_instance=RequestContext(request))

или хочу переписать

selected_choice = p.answer_set.get(pk=request.POST['choice'])

if selected_choice == 'что тут писать'

Как проверить радиобаттон выбран или не выбран ?
  • Вопрос задан
  • 868 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ATNC
Full-stack web\python developer
Если в радиобаттоне не приписан атрибут value, то по дефолту будет приходить "on". Если есть несколько радиобатонов, и нужно различать какой выбран, нужно задать атрибут value у каждого радио ( также не забыть задать атрибут name). Например:
<input type="radio" name="choice" value="choice1">
<input type="radio" name="choice" value="choice2">
<input type="radio" name="choice" value="choice3">


При отправке формы на сервер будет приходить значение из value. Например если выбран первый батон, в реквест будет приходить choice1. Пример:
choice = request.POST['choice']
print(choice)
>>> choice1


Еще рекомендую брать значение из dict с помощью get. Так Вы сможете избежать ошибки. К примеру:
choice = request.POST.get('choice', None)
if choice:
    делать ваш код
else:
    вы не выбрали батон


UPD: Если радиобаттон не выбран - его значение не будет приходить на сервер
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы