Как подсчитать общее количество неразличимых отношений "многие ко многим" между объектами модели?
Предположим, что у меня есть следующие модели:
class Tag(Model):
name = CharField()
class Book(Model):
title = CharField()
tags = ManyToManyField(Tag)
Предположим, что у меня есть 3 книги, и у каждой книги есть 3 тега. Некоторые из тегов могут быть одинаковыми для некоторых книг, это не имеет значения.
Book 1 (Tags = "tag1", "tag2", "tag3")
Book 2 (Tags = "tag1", "tag4", "tag5")
Book 3 (Tags = "tag4", "tag5", "tag6")
Как я могу подсчитать все неразличимые теги в запросе Django ORM так, чтобы в результате получить 9?
Вы можете считать с:
Book.tags.through.objects.count()
Это подсчитает количество тегов для всех Book
. Если у вас есть набор Book
s, вы можете подсчитать с помощью:
Tag.objects.filter(book__in=[1, 2, 3]).count()