0
私は怒鳴るように4つのモデルがあります:Djangoでカスタムネストされたデータを取得するにはどうすればよいですか?
class AModel(models.Model):
name = models.CharField(max_length=11)
class BModel(models.Model):
name = models.CharField(max_length=11)
a = models.ForeignKey(AModel, related_name="bs")
class CModel(models.Model):
name = models.CharField(max_length=11)
b = models.ForeignKey(BModel, related_name="cs")
class DModel(model.Model):
name = models.CharField(max_length=11)
c = models.ForeignKey(CModel, related_name="ds")
を今私は怒鳴るデータを取得したい:
[
{"name":"a1",
"value":1,
"image":"xxxxx.png",
"children":[
{"name":"b1",
"value":1,
"image":"xxxxx.png",
"children":[
{"name":"c1",
"value":1,
"image":"xxxx.png",
"children":[
{"name":"d1",
"value":1,
"image":"xxxx.png",
}
]
}
]
}
]
}
]
ノート、value
とimage
キー値は、自分で追加します。私はジャンゴ・休憩・フレームワークを使用して知っている は次のようにデータを取得することができます。
[
{
"id":1,
"name":"a1",
"bs":[
{
"id":1,
"name":"b1",
"cs":[
"id":1,
"name":"c1",
"ds":[
{
"id":1,
"name":"d1",
}
]
]
}
]
}
]
しかし、どのように私は私の要件データを得ることができますか?
また、AModelインスタンスを最初に照会しようとしましたが、AModelインスタンスのbsをforloopしてから次の操作を行いましたが、それは単純で便利な方法ではなく複雑すぎます。
しかし、どのようにそれについてEModelがあると呼ばれていますか?私はx_setが投稿を助けるとは思わない。 – 1243916142
あなたはDからAへ、DのCのすべての項目、CのB、そしてAからBの項目に戻る必要があります。 – babygame0ver
申し訳ありません最初のクエリを実行するときに間違ったクエリを発しました。すべての可能性のセットが返されます。別のモデルで1つずつ繰り返します – babygame0ver