ValueError: недопустимый литерал для int () с базой 10: «Мумбаи в Дубай» - PullRequest
0 голосов
/ 28 мая 2020

Когда я выполняю эту команду

valueReturned = int(request.form.get("name"))

, где это имя является тегом выбора, я получаю сообщение об ошибке значения

ValueError: недопустимый литерал для int () с база 10: «Мумбаи - Дубай»

Это мой код выбора.

<select name="name">
        {% for flight in flights %}
        <option id="{{flight.id}}">{{flight.origin}} to {{flight.destination}}</option>
        {% endfor %}
    </select>

И что компилятор выбирает из тега.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020
Ошибка

вызвана тем, что вы анализируете строку типа int «Мумбаи - Дубай». вы запрашиваете атрибут name из select, и у вас нет значений в параметрах. Итак, вы пытаетесь разобрать это:

{{flight.origin}} to {{flight.destination}}

попробуйте поместить значения в теги опций:

<select name="name">
    {% for flight in flights %}
        <option value="{{flight.id}}">{{flight.origin}} to {{flight.destination}}</option>
    {% endfor %}
 </select>

немного измените этот оператор:

 valueReturned = int(request.form["name"])

я полагаю что flight.id - это строка, но число. И тогда у вас будет метод int, работающий без ошибок

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

Поскольку ваш параметр не содержит атрибута value, в качестве значения используется текст параметра. Я думаю, вы хотели использовать value, а не id

        <option value="{{flight.id}}">{{flight.origin}} to {{flight.destination}}</option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...