将 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)
我需要一点帮助,我以前使用关系数据模型,现在我尝试使用 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)