Taking the sentence:
select * from auth_permission left join
auth_group_permissions on (auth_group_permissions.permission_id = auth_permission.id)
How can i do in django with queryset i do not understand how the inner join works in querysets
in models of default django auth
I've done this:
permiso = Permission.objects.all().select_related()
...: for x in permiso:
...: print(x.group_set.all().query)
and see in each loop:
SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group" INNER JOIN "auth_group_permissions" ON ("auth_group"."id" = "auth_group_permissions"."group_id") WHERE "auth_group_permissions"."permission_id" = 1255
You can retrieve all group elements and permission by prefetch_related
permissions = Permission.objects.prefetch_related('group_set').all()
for perm in permissions:
group = perm.group_set.all()