如何在Django中的查询集中执行两个内连接

时间:2015-10-23 06:26:53

标签: python sql django

我有三个型号。

/usr/bin/ld: cannot find -lkrb5
/usr/bin/ld: cannot find -lgssapi_krb5
collect2: error: ld returned 1 exit status
make: *** [Release/obj.target/kerberos.node] Error 1
make: Leaving directory `/home/ubuntu/workspace/node_modules/kerberos/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/ubuntu/.nvm/v0.10.35/lib/node_modules/npm/node_modules/node-    gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.14.13-c9
gyp ERR! command "node" "/home/ubuntu/.nvm/v0.10.35/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ubuntu/workspace/node_modules/kerberos
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok 

我想执行查询,我可以获取所有c_name。

class A(models.Model):
    status = models.PositiveSmallIntegerField()
    status_time = models.DateTimeField(auto_now_add=True)
    b = models.ForeignKey(B)
    d=models.ForeignKey(D)

class B(models.Model):
    ***other Fileds*****
    c = models.OneToOneField(C)
    ***other fields***

class C(models.Model):
    c_name = models.CharField(max_length=9,unique=True)

任何人都可以帮忙怎么做。我在这里发现了一个类似的问题,但对于像我这样的新手来说理解起来太复杂了。 你已经非常想要帮助了。

1 个答案:

答案 0 :(得分:2)

像这样的东西

C.objects.filter(b__a__status=6, b__a__d=1).values_list('c_name', flat=True).distinct()

或者

A.objects.filter(status=6, d=1).values_list('b__c__c_name', flat=True).distinct()