Суммируйте все значения 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.
Я пробовал много раз, но все еще не работает, Любая помощь будет очень признательна.