q = UmPermissions.select(UmPermissions, UmUsersRoles.f_expire_time)\
.join(UmRolesPermissions, on=(UmRolesPermissions.f_res_code == UmPermissions.f_res_code))\
.join(UmRoles, on=(UmRolesPermissions.f_role_code == UmRoles.f_role_code))\
.join(UmUsersRoles, on=(UmRoles.f_role_code == UmUsersRoles.f_role_code))\
.where(UmUsersRoles.f_user_id == userid)\
.distinct()
print(q.__dict__)
# a = list(q)
a = list(q.objects())
print(a)
b = a[0]
print(b.f_res_code)
print(b.__dict__)
query_model = ProjectAlgorithmVersion.select(ProjectAlgorithmVersion.id, Project.project_name).join(Project, on=(ProjectAlgorithmVersion.project_id == Project.project_id), attr='p').where(ProjectAlgorithmVersion.id == 2)
join表数量过多时,结果中只有第一个表的数据,需使用objects()获取结果。正常情况下,可以通过全小写属性获取后面的表,比如umrolespermissions。或者在join中指定attr。
发表回复