我嘗試使用DRF序列化器來序列化模型對象。我發現對象中的DatetimeField將不會輸出ISO-8601格式的"2015-10-21T09:28:53.769000Z"
設置django rest框架配置的DatetimeField格式
我查找DRF文件爲什麼我不能輸出ISO-8601格式。根據datetimefield說:
format
- 表示輸出格式的字符串。如果未指定,則默認爲與DATETIME_FORMAT設置鍵相同的值,除非設置,否則它將爲'iso-8601'。設置爲格式字符串表示to_representation返回值應強制爲字符串輸出。格式字符串如下所述。這個值設置爲None表示Python的
這意味着它的默認輸出iso-8601
格式,如果我從來沒有DATETIME_FORMAT
說法?還沒有,它仍然沒有改變。
當我嘗試寫Django項目的設置如下所示:
REST_FRAMEWORK = {
'DATETIME_FORMAT': "iso-8601",
}
或我DateTimeField字段參數寫成如下:
class UserSerializer(...):
last_login = DatetimeField(format='iso-8601')
class Meta:
model = User
fields = ('email', 'displayname', 'is_active',
'date_joined', 'last_login')
這一次仍然沒有改變。
任何人都知道如何設置它?
'DateTimeField字段中對象不會輸出ISO-8601格式的「...」是什麼輸出的? –
我面臨同樣的問題!如果我使用此字段的validated_data,它將輸出類似「2018-01-12 10:20:55」(可能是日期時間對象的默認表示形式?)。我對文檔的理解是輸出結果應該是「2018-01-12T10:20:55 + 00:00」。我在validated_data上調用isoformat()以獲得現在適當的格式,但我一定錯過了一些東西...... – Laurent