Найти - Пользователи
Полная версия: [Flask] Форма, selectfield и дата
Начало » Web » [Flask] Форма, selectfield и дата
1
boligolov
Сделал форму с SelectField со списком трех последних дней. И на следующий день, список обновился только после перезагрузки сервера flask.

forms.py
class DataForm(Form):
    diametr = IntegerField('diam', validators = [Required(), NumberRange(min=10, max=70)])
    date_choices = [(str(date.today()), date.today()),
                        (str(date.today()-timedelta(days=1)), date.today()-timedelta(days=1)),
                        (str(date.today()-timedelta(days=2)), date.today()-timedelta(days=2))]
    date= SelectField('date_add', choices =  date_choices)
В шаблоне так:
    <p>Дата:<br>{{form.date(size=1)}}<br></p>

Может сама форма не совсем правильно сделана, у меня идет преобразование даты в строку, мне кажется это не правильным решением.
[(str(date.today()), date.today())]
Но если не преобразовать, то при выборе в Select получаю “Not a valid choice”.
Все равно потом пихаю эту значение в базу и приходиться делать из строки дату:
databuben = datetime.strptime(form.date.data, "%Y-%m-%d").date()

4kpt_III
Как Вы думаете, в каком формате у Вас приходят даты с формы от пользователя? Ну и я все-таки не понял в чем вопрос, если честно.
boligolov
4kpt_III
у Вас приходят даты с формы от пользователя?
Строка
str(date.today())
, если оставить в формате даты, то получаю “Not a valid choice”
4kpt_III
не понял в чем вопрос, если честно.
1. В SelectField остались значение предыдущего дня, хотя уже наступил следующий день, только после перезагрузки фласк сервера данные обновились.(Получается в форме создается три даты - сегодняшний, предыдущий и ещё за ним день, т.е. если сегодня 5 ноября, то в списке будут 5, 4, 3 ноября. Настал следующий день, а в селектфиелде все 5, 4, 3 ноября, после перезагрузки стало 6, 5, 4 ноября)

2. На мой взляд перевод даты в строку, чтобы заработал SelectField, а потом при добавлении в базу переделывание из строки в дату не совсем правильный подход?
ayb
boligolov
1. В SelectField остались значение предыдущего дня, хотя уже наступил следующий день, только после перезагрузки фласк сервера данные обновились.(Получается в форме создается три даты - сегодняшний, предыдущий и ещё за ним день, т.е. если сегодня 5 ноября, то в списке будут 5, 4, 3 ноября. Настал следующий день, а в селектфиелде все 5, 4, 3 ноября, после перезагрузки стало 6, 5, 4 ноября)

Ну так а что не так ? Предопределите инит у класса формы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB