這是我第一次有一個問題,我找不到一個小時內在這裏搜索的答案,所以這是我第一次不得不發帖:三人加入Django
如何在Django中進行三重連接?這是什麼,我已經有一個最小的版本:
class A(models.Model):
x = models.ForeignKey(X)
y = models.ForeignKey(Y)
class B(models.Model):
y = models.ForeignKey(Y, related_name="Bs")
z = models.ForeignKey(Z)
value = models.IntegerField(default=0)
class C(models.Model):
x = models.ForeignKey(X)
z = models.ForeignKey(Z)
value = models.IntegerField(default=0)
def updateA():
as = A.objects.all()
for a in as:
for b in a.y.Bs:
if b.value <= C.objects.get(x=a.x, z=b.z).value:
<a.stuff = b.stuff>
我真正想要的是表A,B和C, 其中Ax = CX和ay =通過,BZ = CZ,之間的三重加盟b.value < = c.value, 雖然我不關心c後驗證b.value < = c.value。
Django有沒有辦法在數據庫中完成更多這項工作?
我的問題是,Django似乎固有地集中在 雙向連接,我不知道如何進行三向連接。
再說一遍,我6周前不知道任何Django或Python, ,所以我是這個框架的新手,不知道更高級的技巧。
爲什麼你會讓這個x,y,a,b無意義的幫手變得更加困難嗎? – e4c5