#python-3.x #fastapi #bootstrap-5
Вопрос:
Я хочу использовать коммутатор из начальной загрузки 5:
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" name="yes_no" id="flexSwitchCheckDefault">
<label class="form-check-label" for="flexSwitchCheckDefault">Yes</label>
</div>
Это работает , когда кнопка переключения «Включена» или True
, но когда она «выключена», я получаю следующую ошибку в консоли:
"?[1mPOST /form HTTP/1.1?[0m" ?[31m422 Unprocessable Entity?[0m
И это в интерфейсе:
{"detail":[{"loc":["body","yes_no"],"msg":"field required","type":"value_error.missing"}]}
Попробовал с if/else
помощью оператора на Python:
@app.post("/form")
def form_post(request: Request,
yes_no: bool = Form(...)):
if yes_no:
print(yes_no)
else:
print("No")
return templates.TemplateResponse("form_response.html",
context={'request':request}
Но я все равно получаю ту же ошибку. Я также пробовал другие вещи, такие как yes_no:str = Form(...)
, но все равно та же ошибка.
Вывод, который я хочу, — это значение «Да», если переключатель «Включен» или True
, и значение «Нет», если значение «Выключено» или False
.
Комментарии:
1. Я бы подумал, что значение по умолчанию должно работать:
yes_no: bool = Form(False)
?2. Это было так просто, да :Д. Спасибо, Матслинд, если хочешь, можешь отправить ответ, и я с радостью приму его. Было бы хорошо и на будущее 😉
Ответ №1:
Если вы хотите, чтобы значение было необязательным, укажите значение по умолчанию:
@app.post("/form")
def form_post(request: Request,
yes_no: bool = Form(False)):