在序列化程序中转换DateTimeField只显示日期而不是时间

时间:2018-05-15 03:48:50

标签: django-rest-framework

这是我的模特

class modelTest(models.Model):
    created_at = models.DateTimeField(auto_now_add=True,blank=True,null=True)
    updated_at = models.DateTimeField(auto_now=True,blank=True,null=True)
    imageA = models.ImageField(upload_to='images/', default='',null=True)

这是相关的序列化程序

class Serializer_Job_TX(serializers.ModelSerializer):
    class Meta:
        model = modelTest
        fields = [
           'created_at',
           'updated_at',
           'imageA',
       ]

如何确保在日期时间字段发生序列化时,它只输出日期而不是时间?任何建议

1 个答案:

答案 0 :(得分:1)

覆盖序列化程序中的created_atupdated_at属性。这样您就可以使用format选项定义自己的格式。别忘了添加read_only=True。否则,在向模型添加数据时,您将收到错误消息("这些字段是必需的")。

class Serializer_Job_TX(serializers.ModelSerializer):
    created_at = serializers.DateTimeField(read_only=True, format="%Y-%m-%d")
    updated_at = serializers.DateTimeField(read_only=True, format="%Y-%m-%d")
    class Meta:
        model = modelTest
        fields = [
            'created_at',
            'updated_at',
            'imageA',
        ]