MistyD
MistyD

Reputation: 17223

Converting DateTimeField in a serializer to display date only and not the time

This is my model

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)

This is the related serializer

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

How can i make sure that when serialization happens for date time fields it only outputs the date and not the time ? any suggestions

Upvotes: 4

Views: 3984

Answers (1)

Aneesh R S
Aneesh R S

Reputation: 3827

Override created_at and updated_at properties in the serializer. So that you can define your own format using format option. And don't forget to add read_only=True. Else you will get an error message("these fields are required") on adding data to the model.

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',
        ]

Upvotes: 6

Related Questions