Django 加入查询权限和组?

Django join query for permissions and group?

我想以某种方式加入一个拥有我所有权限的群组。 我想查询所有权限,并为每个权限查询一个布尔指示器(如果组有的话)。 所以假设这个

group = Group.objects.get(pk=1) # specific group  

Permission.objects.all().annotate(群里有??)

group.permissions.all()

没有用,因为我想查询所有权限。

更新: 明确解释:
假设我的权限 table 是(pk 值):1、2、3 - 总共三行。
组table:pk=1的一组。
组权限(多对多)table:具有 pk 1 的组,具有权限 1,2(所以两行)

我想显示所有权限,并在它们附近显示该组是否拥有权限。 所以在我们的例子中我应该得到:
1 正确
2 正确
3 错

因为该组没有 pk=3 的权限。

我认为以下查询适合您

from django.db.models import Case, When, BooleanField

group_name = 'your group name'
Permission.objects.annotate(
    has_perm=Max(Case(
        When(group__name=group_name, then=1),
        default=0,
        output_field=BooleanField()
    ))
).values_list('name', 'has_perm').order_by('has_perm')

Conditional expressions were introduced in Django 1.8, and aggregation (annotate) 也有详细记录。