Sedan Subscription är en genomgående tabell för m2m relation mellan Post och Subscriber , när du beställer på fältet Subscription modell själv, alla inlägg visas som individuella rader i resultatuppsättningen och det är därför du får s_count=1 eftersom varje inlägg med en viss prenumerant är unikt.
Du måste kommentera Post objekt med den senaste date_subscribed av alla subscribers och beställ sedan på kommenterat fält:
posts = Post.objects.annotate(
s_count=Count('subscribers'),
s_date_max=Max('subscription__date_subscribed')
).order_by('-s_count', '-s_date_max')
UPPDATERING för nästa fråga:
Om du använder count() metod returnerar det antalet Posts . Du kan se att det kommer att skilja sig från antalet du får från len(queryset.values_list('s_count', 'subscription__date_subscribed')) eftersom de individuella värdena för datum vid denna tidpunkt har hämtats i resultatuppsättningen.