Суммируйте все значения ManyToManyField экземпляра модели

Я создаю BlogApp и пытаюсь подсчитать все значения просмотров ManyToManyField.

Например :- blog_1's просмотров 50 и blog_2's просмотров 15, Поэтому я пытаюсь суммировать и показать в одном виде 65.

Но когда я использую Sum, он показывает неожиданные странные результаты, например, когда вид увеличивается с 50 до 51, он показывает 57 или 67, а должен показывать 51.

models.py

class BlogPost(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=30)
    views = models.ManyToManyField(User, related_name='views')

views.py

def page(request):
    show_all_views = BlogPost.objects.filter(user=request.user).aggregate(total_views=Sum('views'))

    context = {'show_all_views':show_all_views}
    return render(request, 'page.html', context)

aggregate показывает или увеличивает 10 на +1 увеличение.

затем я использовал annotate как

show_all_views = BlogPost.objects.filter(user=request.user).annotate(num_views=Count('views'))

    for total in show_all_views:
        print(total.num_views)

Но он показывает

3
3
1
1
1
1
0

Я понятия не имею, как я могу суммировать все в цикле for.

Я пробовал много раз, но все еще не работает, Любая помощь будет очень признательна.

Вернуться на верх