Sejak Subscription adalah tabel tembus untuk relasi m2m antara Post dan Subscriber , ketika Anda memesan di bidang Subscription model itu sendiri, semua posting muncul sebagai baris individual di set hasil dan itulah mengapa Anda mendapatkan s_count=1 karena setiap postingan dengan pelanggan tertentu adalah unik.
Anda perlu membubuhi keterangan pada Post objek dengan date_subscribed terbaru dari semua subscribers lalu pesan di kolom beranotasi:
posts = Post.objects.annotate(
s_count=Count('subscribers'),
s_date_max=Max('subscription__date_subscribed')
).order_by('-s_count', '-s_date_max')
PERBARUI untuk pertanyaan berikutnya:
Jika Anda menggunakan count() metode itu akan mengembalikan jumlah Posts . Anda dapat melihat bahwa itu akan berbeda dari jumlah yang Anda dapatkan dari len(queryset.values_list('s_count', 'subscription__date_subscribed')) karena saat ini nilai individual untuk tanggal telah diambil di kumpulan hasil.