如何计算模型对象跨对象之间的全部不构度多次关系?

发布于 2025-02-11 15:12:06 字数 422 浏览 2 评论 0原文

假设我有以下模型:

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个?

Assume I have the following models:

class Tag(Model):
  name = CharField()

class Book(Model):
  title = CharField()
  tags = ManyToManyField(Tag)

Now suppose I have 3 books, and each book has 3 tags. Some of the tags might be the same for some of the books, it doesn't matter.

Book 1 (Tags = "tag1", "tag2", "tag3")
Book 2 (Tags = "tag1", "tag4", "tag5")
Book 3 (Tags = "tag4", "tag5", "tag6")

How can I count all non-distinct tags in a Django ORM query so that I get 9 as a result?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期以后 2025-02-18 15:12:06

您可以计数:

Book.tags.through.objects.count()

这将计算 all book s的标签数。如果您有一组book s,则可以计数以下方式:

Tag.objects.filter(book__in=[1, 2, 3]).count()

You can count with:

Book.tags.through.objects.count()

This will count the number of tags for all Books. If you have a set of Books, you can count with:

Tag.objects.filter(book__in=[1, 2, 3]).count()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文