Преобразование набора запросов SQL в набор запросов модели Django

Мне нужна небольшая помощь, я пришел из работы с реляционными моделями данных и теперь я решился на Django Framework, мне нужно сделать API, который возвращает что-то вроде этого SQL запроса

SELECT user_profile_userprofile.email,
     user_profile_userprofile.name,
     business_unity.active AS status,
     profile.name AS profile,
     business_unity.name AS unit

FROM user_profile_userprofile
      JOIN profile ON user_profile_userprofile.id = profile.id
      JOIN user_profile_unity ON user_profile_unity.user_id = user_profile_userprofile.id
      JOIN business_unity ON user_profile_unity.id = business_unity.id;

Модели уже созданы, но я не знаю, как сделать представление в python, которое удовлетворяет условиям этого запроса

По сути, вам нужно "предварительно загрузить" ассоциации с помощью select_related, а затем вы просто используете обычные методы для навигации по ним.

Предположим, что ваши модели имеют вид

class UserProfile(Model):
    profile = ForeignKey("Profiles", ...)
    unity = ForeignKey("Unity", ...)

class Unity(Model):
    business_unity = ForeignKey("business.Unity", ...)
qs = UserProfile.select_related("profile", "unity__business_unity").all()
up = qs[0]

Теперь у вас загружены все данные (и даже больше)

print(up.email)
print(up.name)
print(up.unity.business_unity.active)
print(up.profile.name)
print(up.unity.business_unity.name)
Вернуться на верх