Django timezone models.DateTimeField does not have seconds via DRF

Viewed 119

I have model which has DateTimeField

class Genre(models.Model):
    pub_date = models.DateTimeField('date published',default=timezone.now)

in database it has the Datetime with seconds 2021-07-27 07:51:18.87329

However when returning this in Django-Restful-Framework, it doesn't have seconds.

like

class GenreViewSet(viewsets.ModelViewSet):
    queryset = Genre.objects.all()
    serializer_class = GenreSerializer
    def list(self,request,*args,**kwargs):
        objs = Genre.objects.all()
        custom_data = {
            'items': GenreSerializer(objs, many=True).data
        }
        return Response(custom_data) 


class GenreSerializer(serializers.ModelSerializer):
    class Meta:
        model = Genre
        fields = ('id','pub_date')

Somehow it shows like "pub_date": "07/27/2021 07:51P"

Why seconds are omitted??

1 Answers

You have to do something like this

class GenreSerializer(serializers.ModelSerializer):
    pub_date = serializers.DateTimeField(format=""%m/%d/%Y, %I:%M:%S %p"")
    class Meta:
        model = Genre
        fields = ('id','pub_date')

Just use python datetime format here and it should work for you

Related