У меня есть форма, где я прошу пользователя представить несколько разных входов. Затем в методе действия формы я указываю, что если какой-либо из входов пуст, перенаправляйте их в форму. Это работает для каждого входа, кроме ввода даты. По какой-то причине он никогда не признает это пустым и все равно подает форму. Я пробовал это, используя тип даты и тип текста. Если я удалю ввод даты, форма работает нормально. Я попытался изменить имя ввода даты (которое, как и ожидалось, не исправляет его). На этом конкретном входе просто кажется, что это исправлено.Представление формы CherryPy не распознает ввод даты как пустой
В приведенном ниже коде я прокомментировал строку db_func, но с ней прокомментировал или нет, она проходит через оператор if и переходит к else, если включен ввод даты.
@cherrypy.expose
@require()
def new_flight(self, msg="Add new flight"):
return """<html><body>
<form method="post" action="/add_flight">
%(msg)s<br />
Departure Airport: <input type="text" name="airport_from"/><br />
Arrival Airport: <input type="text" name="airport_to"/><br />
Date: <input type="text" name="date"/><br />
Carrier: <input type="text" name="carrier"/><br />
Flight No.: <input type="number" name="flight_no"/><br />
<input type="submit" value="Add Flight" />
</html></body>""" % locals()
@cherrypy.expose
@require()
def add_flight(self, airport_from=None, airport_to=None, date=None, carrier=None, flight_no=None):
if airport_from is None or airport_to is None or date is None or carrier is None or flight_no is None:
return self.new_flight("Please enter all information")
else:
#db_func.add_flight(cherrypy.request.login,airport_from,airport_to,date,carrier,flight_no)
return self.home(msg="Your flight has been added.")
Я не могу понять, как получить дату для лечения, как и все другие входы.
Если вы печатаете содержимое даты в функции add_flight, что вы получаете? – Aphid
Итак, я изменил тип ввода на дату, и, если я распечатаю содержимое, я вижу, что он равен «когда ничего не введено». Я изменил «date is None» на «date ==». Теперь он возвращает «Пожалуйста, введите всю информацию», если дата пуста, однако, если я введу дату и оставлю другие поля пустыми, она добавит рейс. Я не уверен, почему дата, содержащая значение, кажется, превзошла остальные поля. –