将 SQL 查询集转换为 Django 模型查询集

Convert SQL query set into Django Model Query-set

我需要一点帮助,我以前使用关系数据模型,现在我尝试使用 Django 框架,我需要制作一个 API returns 像这样的东西 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)