我有一个带有DateTime类型字段的模型。我想显示此字段,例如 2018-05-04 12:05 。
我该怎么做?
我的模型:
class MyModel(models.Model):
name = models.CharField(max_length = 100)
....
created_at = models.DateTimeField()
class MySerializer(serializers.ModelSerialer):
class Meta:
model = MyModel
fields = ('name', 'created_at')
但是它显示created_at,例如: 1990-12-31T23:59:60Z
答案 0 :(得分:2)
format
-代表输出格式的字符串。如果未指定, 该默认值与DATETIME_FORMAT
设置键相同, 除非设置,否则将为'iso-8601'
。设置为格式字符串 指示应将to_representation
返回值强制转换为 字符串输出。格式字符串如下所述。设定这个值 到None
表示Pythondatetime
对象应由to_representation
。在这种情况下,日期时间编码将为 由渲染器确定。
您可以通过为串行化程序指定DateTimeField
的 format
参数来实现。
class MySerializer(serializers.ModelSerializer):
created_at = serializers.DateTimeField(format='%Y-%m-%d %H:%M')
class Meta:
model = MyModel
fields = ('name', 'created_at')
答案 1 :(得分:1)
您可以定义格式。
created_at = serializers.DateTimeField(format="%Y-%m-%dT%H:%M:%S", required=False, read_only=True)
更改所需类型的格式。如果要更改所有日期时间,请在设置文件中进行更改。
REST_FRAMEWORK = {
'DATETIME_FORMAT': "%Y-%m-%dT%H:%M:%S.%fZ",
}