2016-12-24 5 views
0

Есть ли способ изменить формат полей даты и времени при использовании CreateView или UpdateView? Я пытаюсь получить форму, чтобы принять даты в виде чего-то вроде "2016-12-29 03:49 PM". Я знаю, что формат должен быть '%Y-%m-%d %I:%M %p', и это отлично проверяет в оболочке. Я просто не знаю, как заставить его работать с помощью CreateView или UpdateView, но похоже, что он должен быть выполнен.Как изменить формат времени в django в представлении с общим классом

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^