如何从 Django 中的嵌套 M2M 字段查询记录?
How to query records from a nested M2M field in Django?
我正在尝试了解如何在 Django 中为嵌套的多对多关系获取查询集。想象一下看起来像这样的模型:
class Collection:
...fields...
class Group:
collections = ManyToMany(Collection)
class Account:
groups = ManyToMany(Group)
我不太明白如何查询给定帐户的所有集合。
例如类似于:
account.groups.all().values('collections')
但上面的查询为我提供了一个仅包含集合主键的通用 QuerySet,我想要一个包含完整模型的 CollectionQuerySet。
您可以使用小写模型名称 (Django docs) 进行反向查找。
这应该会为您提供您期望的查询集。
Collection.objects.filter(group__account=account)
请注意,这可能会给您带来重复(例如,一个集合与多个组相关联)。
我正在尝试了解如何在 Django 中为嵌套的多对多关系获取查询集。想象一下看起来像这样的模型:
class Collection:
...fields...
class Group:
collections = ManyToMany(Collection)
class Account:
groups = ManyToMany(Group)
我不太明白如何查询给定帐户的所有集合。
例如类似于:
account.groups.all().values('collections')
但上面的查询为我提供了一个仅包含集合主键的通用 QuerySet,我想要一个包含完整模型的 CollectionQuerySet。
您可以使用小写模型名称 (Django docs) 进行反向查找。
这应该会为您提供您期望的查询集。
Collection.objects.filter(group__account=account)
请注意,这可能会给您带来重复(例如,一个集合与多个组相关联)。