На сервере Django создается сервер API. Модель Author
имеет DateTimeField
, которая сериализуется в форматированную строку iso, такую как 2015-04-10T07:28:45.571039+00:00
.Принять datetime isoformat в форме Django
class Author(models.Model):
created = models.DateTimeField()
Клиент выполнен в Javascript. Он строит модель с данным полем datetime, поэтому, чтобы обновить модель, я хотел бы использовать поле в том же формате.
Чтобы обработать запрос на стороне сервера, есть типовая форма
class AuthorForm(forms.ModelForm):
class Meta:
model = Author
POST/PUT обработчик запроса вызывает исключение: «Введите действительную дату/время». Причина этого разрешена DATETIME_INPUT_FORMATS. Невозможно принять информацию о часовом поясе с внутренним двоеточием.
Учитывая, что я не хочу удалять поддержку часового пояса (USE_TZ) и хотел бы принимать данные с информацией о часовом поясе, каков способ реализации серверной части? В настоящее время у меня есть два решения: 1) исключить поле вообще 2) использовать CharField
в форме с dateutil.parser.parse
функция внутри форма чистый способ. Есть ли у вас предложения, как с этим бороться?
Я использую Postgres и мои настройки «USE_TZ = True», так Джанго настроен для часовых поясов (в противном случае сериализованных даты в описании будет не имеет суффикса "+00: 00". –
Я думаю, что нет проблем с хранилищем, потому что я могу воспроизвести ошибку для правильных данных, отклоняющих ее формат через DATETIME_INPUT_FORMATS. –