Я хочу как-то присоединиться к группе со всеми моими разрешениями. Я хочу запросить ВСЕ разрешения, а для каждого запроса разрешения - логический индикатор, если у него есть группа. Так предположим, этотDjango присоединиться к запросу для разрешений и группы?
group = Group.objects.get(pk=1) # specific group
Permission.objects.all(). Аннотацию (группа имеет это ??)
group.permissions.all()
не поможет, так как я хочу, чтобы запросить все разрешения.
UPDATE: Четкого объяснения:
Пусть мое разрешение таблица (значения рк): 1, 2, 3 - всего три строки.
Групповой стол: одна группа с pk = 1.
Таблица групповых разрешений (много для многих): группа с pk 1, имеет разрешение 1,2 (так что две строки)
Я хочу показать все разрешения с индикатором рядом с ним, есть ли у группы Это. Таким образом, в нашем случае я должен получить:
1 Правда
2 Правды
3 Ложных
Причины группа не имеет разрешения с рк = 3.
Забыл сказать, что это действительно работает. Просто вопрос - для чего нужен Макс? – user3599803
Причина без макс, я получаю дублированные результаты .. Я не понимаю, почему – user3599803
'annotate' вызывает' group by', в этом случае на основе 'Permission.pk' (если есть предыдущие' значения () 'call, он будет группировать по этим столбцам. При отладке сложных запросов полезно посмотреть на сгенерированный SQL, например: 'print Permission.objects.annotate (...). Query' – zsepi