2013-06-04 2 views
2

Когда я отправляю время с информацией о часовом поясе, например: 2013-02-27T14: 00: 00-05: 00 в поле datetime в Django, выдается ошибка формы «Введите действительную дату/время».Поддерживает ли Django DateTimeField время с информацией о часовом поясе?

Моя форма поля определяется как ниже

time = forms.DateTimeField() 

Я также попытался переходящая в форматах дат в форме подачи. например:

DATE_FORMATS = [ 
    '%Y-%m-%dT%H:%M:%S-%z', 
] 
time = forms.DateTimeField(input_formats=DATE_FORMATS) 

Разве Django DateTimeField не поддерживает время с информацией о часовом поясе?

+0

Из [документации по часовому поясу] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zone-aware-input-in-forms): * Когда вы включаете часовой пояс support, Django интерпретирует даты, введенные в формы в текущем часовом поясе, и возвращает объекты 'datetime' в' cleaned_data'. * –

+0

Итак, нет, это не поддерживает добавление часового пояса как части формы ввода. –

ответ

0

Да! Django DateTimeField поддерживает часовые пояса, но если вы посмотрите на документацию, вы должны указать ее отдельно от фактического DateTime в своей форме. В частности, в документации рекомендуется активировать часовой пояс для каждого пользователя, иначе вы всегда будете вводить DateTime в часовой пояс по умолчанию.

https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zone-aware-input-in-forms

Это документация я использовал для моего проекта, и она работала хорошо.

Кроме того, если вам нужно указать определенный часовой пояс в поле формы, вы всегда можете создать раскрывающееся поле со всеми временными часами в нем, а затем сохранить DateTime в своем представлении с правильным часовым поясом.

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