Что возвращает метод request.POST.get в Django?
Что возвращает request.POST.get("a") в то время как "a" является ссылкой на следующий html
label for = "a">ADDED ITEMS:</label>
<input hidden type="number" name="a" id="a">
def myfunc():
if request.method == "POST":
a = request.POST.get("a");
obj = TransferedItems(item_id = a);
obj.save();
return HttpResponse("sent")
else:
return HttpResponse("form submission failed")
Я новичок в Django и не могу найти, что возвращает request.POST.get. Пожалуйста, помогите мне разобраться в моем вопросе.
Возвращает значение поля с именем a
, которое вы отправляете из HTML. Если значение не существует, возвращается None
Django request.POST
является словареподобным объектом, что означает, что его get()
метод ведет себя точно так же, как обычный dict
метод get()
:
get(key[, default])
Возвращает значение для ключа, если ключ находится в словаре, иначе значение по умолчанию. Если значение default не задано, оно по умолчанию равно None, так что этот метод никогда не вызовет ошибку KeyError.
.
Итак, чтобы ответить на ваш вопрос, request.POST.get("a")
либо возвращает значение a
, которое всегда является строкой (хотя это может быть и пустая строка!), либо значение None
. Следующий код проверяет, какая из этих возможностей имеет место:
a = request.POST.get("a")
if a is None:
return HttpResponseBadRequest("No key `a` present in POST data")
if a == "":
return HttpResponseBadRequest("Empty string supplied for `a` in POST data")
TransferedItems.objects.create(item_id = a)
return HttpResponse("sent")