Request.POST.getlist возвращает список строк - как вместо этого получить целые числа

У меня есть несколько полей формы, скажем:

<input name="item" value="2">
<input name="item" value="3">
<input name="item" value="4">

Когда я получаю их в своем представлении Django с помощью getlist, я получаю следующее:

items = request.POST.getlist("item")
# items = ['2', '3', '4']

Есть ли способ получить их в виде целых чисел, а не строк? Или я должен преобразовать их в целые числа вручную (например, с помощью понимания списка)?

Попробуйте отобразить, а затем разобрать на int:

items_str = request.POST.getlist("item")
# items_str = ['2', '3', '4']

# Maps each string to an int
items_map = map(int, items_str)

# Converts mapped output to a list of ints
items_int = list(items_map)

print(items_int)
# [2, 3, 4]

По умолчанию при обращении к request.POST.getlist("item") вы будете получать входные данные в виде списка строк. Кроме того, request.POST.get("item") будет возвращать строку, даже если тип входных данных - число, например <input type="number">

Если вам требуется/предполагается получать целые числа, я бы рекомендовал вручную преобразовать полученный список в целые числа.

Вернуться на верх