Установить формат DatetimeField конфигурации фреймворка django rest
Я пытаюсь использовать сериализаторы DRF для сериализации объекта модели. Я нахожу DatetimeField в объекте не будет выводить "2015-10-21T09:28:53.769000Z"
формата ISO-8601
Я ищу документ DRF, почему я не могу вывести формат ISO-8601. Согласно datetimefield говорит:
format
- строка, задающая формат вывода. Если не указано, по умолчанию используется то же значение, что и ключ настроек DATETIME_FORMAT, который будет "iso-8601", если не установлен. Установка строка формата указывает, что возвращаемые значения to_representation должны быть принудительно выведены в строку. Строки формата описаны ниже. Значение None означает, что Python
это означает, что по умолчанию выводится iso-8601
формат, если я никогда не устанавливал
2 ответов
Если вы не знаете, что происходит, и вы все еще не знаете этого, я могу определить формат datettime в настройке следующим образом:
REST_FRAMEWORK = {
'DATETIME_FORMAT': "%Y-%m-%dT%H:%M:%S.%fZ",
}
вам не нужно определять DATETIME_FORMAT
в настройках или format
на .
In [1]: from rest_framework import serializers
In [2]: from datetime import datetime
In [3]: class SomeSerializer(serializers.Serializer):
....: last_login = serializers.DateTimeField()
....:
In [4]: x = SomeSerializer(data={'last_login':datetime.now()})
In [5]: x.is_valid()
Out[5]: True
In [6]: x.data # representation of 'last_login' will be in iso-8601 formatted string
Out[6]: OrderedDict([('last_login', u'2015-10-22T09:32:02.788611Z')])