@nishe

Почему следующий шаблон возвращает в request.POST один символ, а не всю строку?

choice_name содержит название выбора. Оно нормально отображается на странице, но из формы возвращается не вся строка, а лишь первый символ.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="{% url 'quiz:vote' question.id%}" method = 'POST'>
        {% csrf_token %}
        <fieldset>
            <h3>{{question.question_text}}</h3>
            {% for choice_name in question_choices %}
                <input type="radio" name="choice" id={{choice_name}} value={{choice_name}}>
                <label for={{choice_name}}>{{choice_name}}</label><br>
            {% endfor %}
        </fieldset>
        <input type="submit">
    </form>
</body>
</html>


request.POST выдает :
<QueryDict: {'choice': ['I']}>
А должен:
<QueryDict:{'choice': 'I am fine'}>
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Не видя исходных данных могу только предположить, что в choice_name строка вида "1 Вариант 1".
Тогда ваш input выведется как
<input type="radio" name="choice" id=1 Вариант 1 value=1 Вариант 1>
и будет распознан браузером как
<input type="radio" name="choice" id="1" Вариант 1 value="1" Вариант 1>
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
div. Ставрополь
от 50 000 до 120 000 ₽
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Санкт-Петербург
До 180 000 ₽