Установить вход в AM PM в поле времени Django
Я хочу, чтобы пользователи могли выбирать между часами утра и вечером с моим временным полем в django
В настоящее время, если я вхожу:
11:00 УТРА
, я получаю ошибку формы: "Введите правильное время".
Если я введу:
11:00
форма проверяется без проблем.
Я также попробовал:
class RemindersForm(forms.ModelForm):
remdinder = forms.TimeField(input_formats='%H:%M %p',)
class Meta:
model = NotificationPreference
fields = (
'reminder',
)
Это изменяет формат ввода на:
11:00:00
и до сих пор дает мне вышеуказанную ошибку проверки.
Что я делаю неправильно?
4 ответа
Я искал похожий ответ и не нашел подходящего models.TimeField
Таким образом, самое простое решение, которое я нашел для работы с этим сайтом, было бы установить в вашем settings.py следующую глобальную переменную:
TIME_INPUT_FORMATS = ['%I:%M %p',]
Я надеюсь, что это помогает кому-то.
Для использования других форматов смотрите:
Чтобы получить 12-часовой формат времени, вы должны использовать следующее:
Для ввода (это список форматов, которые Django использует при проверке):
field = TimeField(input_formats=('%I:%M %p',...,...))
Для вывода (это формат, который Django будет использовать для отображения значений времени):
field = TimeField(widget=TimeInput(format='%I:%M %p'))
%I указывает на 12-часовой формат часов, тогда как%H указывает на 24-часовой формат часов.
Кроме того, список по умолчанию input_formats можно найти в каждом файле locales format.py. Django использует первый формат в списке input_formats в качестве формата вывода по умолчанию для полей времени.
Я думаю, что вы можете сделать что-то вроде этого в forms.py
field = DateTimeField(input_formats='%H:%M %p',...)
В соответствии с документацией Django и документацией по времени и времени на python, он должен работать, если вы измените настройки ввода времени на:
TIME_INPUT_FORMATS = ('%I:%M %p',)