如何使用Django在一个完整的外部连接中组合合并对象?

djmepvbi  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(103)

让我们使用Django的标准用户和组。我有几个用户和组,每个用户可以通过M2M关系分配到几个组。
现在,我想构造一个交叉连接用户x组的查询。目的是一个视图,显示所有组与它的成员,当用户是几个组的成员,那么我希望他们在每个组中显示。
我目前有这个查询,它似乎给了我一个交叉连接给予:

groups = list(Group.objects.all())
queryset = User.objects.filter(groups__in=groups)

但是,查询仅包含有关用户的数据。如何将每个组的数据包含到查询集中?

rmbxnbpk

rmbxnbpk1#

您可以使用注解为每个组添加数据。组对象可以通过F对象访问。
范例:

groups = list(Group.objects.all())
queryset = (
    User.objects.filter(groups__in=groups)
    .annotate(group_name=F("groups__name"))
)

相关问题