Если у вас есть созданная временная метка в вашей модели, то не могли бы вы отсортировать возрастание по этому полю и получить первое значение?
Чтобы сделать разницу между датами, вы можете иметь возможность использовать статистическую функцию для поиска самой высокой и самой низкой даты, но я не уверен. Может работать что-то вроде следующего:
MyModel.objects.all().aggregate(lowest=Min('created_at'), highest=Max('created_at'))
А затем вычислите разницу между этими двумя значениями - все это, конечно, зависит от того, правильно ли работают агрегатные функции Min и Max с датами ...