Как записать значения радиобокса в Django? - PullRequest
0 голосов
/ 09 мая 2020

Я работаю над проектом Django. Я не могу записывать значения переключателей. Я хочу это - если из трех ответов (три переключателя со значениями a, b, c соответственно, пользователь выбирает, скажем, b, то в таблице ответов из трех столбцов ответов второй столбец должен фиксировать 'b' и ничего (то есть пустое) не должно храниться в двух других столбцах. Совершенно очевидно, что "nm", которое я написал в request.POST, на данный момент неверен.

Заранее благодарим за любую помощь.

Код формы, как показано ниже

  <input type="radio" id = "ans1" name = "nm" value = "a" class = "form-control">{{question.ans1}}
  <input type="radio" id = "ans2" name = "nm" value = "b" class ="form-control">{{question.ans2}}
  <input type="radio" id = "ans3" name = "nm" value = "c" class ="form-control">{{question.ans3}}         
  <input type="submit" value="Submit">

В файле представлений функция выглядит следующим образом

  def updateans(request):
  if request.method == 'POST':
     user_id = request.POST['user_id']
     questionid = request.POST['questionid']
     ans1 = request.POST['nm']
     ans2 = request.POST['nm']
     ans3 = request.POST['nm']
     myans = Answers(questionid_id = questionid, userid_id = user_id, ans1 = ans1, ans2=ans2, ans3=ans3)
     myans.save()

1 Ответ

0 голосов
/ 09 мая 2020

Вы можете использовать метод .get() для установки значения по умолчанию, если значение не возвращается. Это добавит пустую строку в БД, если выбор останется пустым. (при условии blank=True)

  def updateans(request):
  if request.method == 'POST':
     user_id = request.POST['user_id']
     questionid = request.POST['questionid']
     ans1 = 'a' if request.POST.get('nm') == 'a' else ''
     ans2 = 'b' if request.POST.get('nm') == 'b' else ''
     ans3 = 'c' if request.POST.get('nm') == 'c' else ''
     myans = Answers(questionid_id = questionid, userid_id = user_id, ans1 = ans1, ans2=ans2, ans3=ans3)
     myans.save()
...