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">
Если вам требуется/предполагается получать целые числа, я бы рекомендовал вручную преобразовать полученный список в целые числа.