0
私は3つのテーブルを持って、名前A
、B
、C
:私は怒鳴るデータを取得したいDjangoでの3レベルクエリの方法は?
class A(models.Model):
name = models.CharField(max_length=12)
class B(models.Model):
name = models.CharField(max_length=12)
a = models.ForeignKey(to=A)
class C(models.Model):
name = models.CharField(max_length=12)
email = models.EmailField()
b = models.ForeignKey(to=B)
:唯一のテーブルがある場合は、参照
[
{"name":"a1",
"data":[{
"name":"b1",
"data":[
{"name":"c1",
"data":{"c1_name":"c1_name", "c1_id":"c1_id"}
},
{"name":"c2",
"data":{"c2_name":"c2_name", "c2_id":"c2_id"}
}
]
},
{
"name":"b2",
"data":[
{"name":"c1",
"data":{"c1_name":"c1_name", "c1_id":"c1_id"}
},
{"name":"c2",
"data":{"c2_name":"c2_name", "c2_id":"c2_id"}
}
]
}
]
}
]
は、3レベルのデータがありますAとB、私は複数のテーブルの接続クエリを行うことができます:
B.objects.filter(a='search_id')
今は3つのテーブルがありますテーブルC
のメールにはクエリデータが含まれていません。 私のシナリオでこの要件を実現するには?
[Django - 外部キープロパティのフィルタリング]の複製(https://stackoverflow.com/questions/1981524/django-filtering-on-foreign-key-properties) –
@BrianH。私のシナリオは3レベルの接続です、あなたは2つです。 – aircraft
外部キーをプロパティとして使用し、別の '__'を追加することができます –