在Django中使用ORM。,如何在不同的值上进行多个自连接

时间:2017-08-03 11:25:34

标签: python mysql django orm

是否有人可以帮助我如何使用ORM在Django中的不同值上编写多个自联接?

例如,我们有两个表。 (1)项目(2)project_tab_status

tables as picture

我已经编写了如下查询,无法访问第二个连接字段:

Project.objects.filter(projecttabstatus__tab_status_type='processor1').annotate(tab_status_type_bv=Concat('projecttabstatus__tab_status_type', Value(''), Value('')),tab_status_bv=Concat('projecttabstatus__tab_status', Value(''), Value(''))).filter(projecttabstatus__tab_status_type='processor2').values('name', 'tab_status_type_bv', 'projecttabstatus__tab_status_type', 'projecttabstatus__tab_status', 'tab_status_bv', 'projecttabstatus__id').filter(id=698)

但第二个处理器的值未正确显示。

1 个答案:

答案 0 :(得分:0)

您可以尝试遵循关系backward

all_projects = Projects.objects.all()
for project in all_projects:
    project.project_tab_status_set.all()  # this will give you the project_tab_status objects associated with a given project.