У меня есть эта модель:
class Role(models.Model):
role_name = models.CharField()
class RolePriviledge(models.Model):
role = models.ForeignKey(Role, related_name='role_priviledge' )
module_name = models.CharField()
priviledge_level = models.CharField()
class UserRole(models.Model):
user = models.ForeignKey(User)
role = models.ForeignKey(Role)
Я пытаюсь найти все привилегии для указанного пользователя.В sql это будет:
SELECT t3.*
FROM UserRole t1
JOIN Role t2 on t1.role_id = t2.id
JOIN RolePriviledge t3 on t2.id = t3.role_id
WHERE t1.user_id = USER_ID
(я также могу пропустить объединение с Role
и просто выполнить внутреннее объединение между UserRole
и RolePriviledge
)
Как быЯ делаю это присоединиться к Django ORM?UserRole.objects.filter(user_id=USER_ID).select_related('role')
присоединится к UserRole
с Role
.Как мне присоединиться к ней с RolePriviledge
?