Не понимаю, что ты хочешь этим дистинктом добиться. Количество постов у юзера?
Если да и метод posts_count принадлежит модели User, то:
self.posts.count()
Если общее решение на конкретного юзера:
user = ... # Откуда-то у тебя есть юзер
Post.objects.filter(user=user).count()
Если ты хочешь одним запросом посчитать посты каждого юзера в БД, то:
Post.objects.values("user").annotate(cnt=Count("*"))
Ну и конечно их можно сортировать по количеству вхождений:
Post.objects.values("user").annotate(cnt=Count("*")).order_by("-cnt")