Есть ли способ изменить формат полей даты и времени при использовании CreateView или UpdateView? Я пытаюсь получить форму, чтобы принять даты в виде чего-то вроде "2016-12-29 03:49 PM"
. Я знаю, что формат должен быть '%Y-%m-%d %I:%M %p'
, и это отлично проверяет в оболочке. Я просто не знаю, как заставить его работать с помощью CreateView или UpdateView, но похоже, что он должен быть выполнен.Как изменить формат времени в django в представлении с общим классом
0
A
ответ
1
Вам необходимо обновить свой класс формы, чтобы принять другие форматы ввода. Ваша форма должна выглядеть примерно так:
class YourForm(ModelForm):
date_of_birth = DateTimeField(input_formats='%Y-%m-%d %I:%M %p')
class Meta:
model = YourModel
Однако, это, вероятно, лучше поместить все ваши допустимые форматы входных в переменной и вызвать его из settings.py, как это:
settings.py
DATE_INPUT_FORMATS = [
'%Y-%m-%d %H:%M:%S',
'%m/%d/%Y %H:%M:%S',
'%Y-%m-%d %I:%M %p',
]
forms.py
class YourForm(ModelForm):
date_of_birth = DateTimeField(input_formats=settings.DATE_INPUT_FORMATS)
class Meta:
model = YourClass
Наконец , Я бы не оставлял его пользователю, чтобы каждый раз вводить дату вручную (предполагая, что это представление для людей), дайте им виджет DateTime, чтобы выбрать его для них. Вы можете найти информацию о виджетах здесь: https://docs.djangoproject.com/en/1.10/ref/forms/widgets/
и информации о датах и время Поля Формы здесь: https://docs.djangoproject.com/en/1.10/ref/forms/fields/#datetimefield