Siden Subscription
er en gennemgående tabel for m2m relation mellem Post
og Subscriber
, når du bestiller på et felt med Subscription
selve modellen vises alle indlæg som individuelle rækker i resultatsættet, og det er derfor du får s_count=1
fordi hvert indlæg med en bestemt abonnent er unikt.
Du skal kommentere Post
objekter med den seneste date_subscribed
af alle subscribers
og bestil derefter på annoteret felt:
posts = Post.objects.annotate(
s_count=Count('subscribers'),
s_date_max=Max('subscription__date_subscribed')
).order_by('-s_count', '-s_date_max')
OPDATERING til næste spørgsmål:
Hvis du bruger count()
metoden returnerer antallet af Posts
. Du kan se, at det vil afvige fra det antal, du får fra len(queryset.values_list('s_count', 'subscription__date_subscribed'))
fordi på dette tidspunkt er de enkelte værdier for datoer hentet i resultatsættet.