【问题标题】:How to query records from a nested M2M field in Django?如何从 Django 中的嵌套 M2M 字段中查询记录?
【发布时间】:2021-08-04 22:49:16
【问题描述】:

我正在尝试了解如何为 Django 中的嵌套多对多关系获取查询集。想象一下看起来像这样的模型:

class Collection:
    ...fields...

class Group:
    collections = ManyToMany(Collection)

class Account:
    groups = ManyToMany(Group)

我不太清楚如何查询给定帐户的所有集合。

例如类似于:

account.groups.all().values('collections')

但是上面的查询给了我一个只包含集合 PK 的通用 QuerySet,我想要一个包含完整模型的 CollectionQuerySet。

【问题讨论】:

    标签: django django-queryset


    【解决方案1】:

    您可以使用小写型号名称 (Django docs) 进行反向查找。

    这应该会给你你期望的查询集。

    Collection.objects.filter(group__account=account)
    

    请注意,这可能会给您带来重复项(例如,一个集合与多个组相关联)。

    【讨论】:

    • IDK 为什么我没想到只是反转查询,干杯。
    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2019-07-18
    相关资源
    最近更新 更多