【发布时间】:2017-12-26 11:03:36
【问题描述】:
我有四个模型如下:
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 键值是我自己添加的。
我知道使用 Django-Rest-Framework 可以获得如下数据:
[
{
"id":1,
"name":"a1",
"bs":[
{
"id":1,
"name":"b1",
"cs":[
"id":1,
"name":"c1",
"ds":[
{
"id":1,
"name":"d1",
}
]
]
}
]
}
]
但是我怎样才能得到我的需求数据呢?
我也试过先查询AModel实例,forloop查询AModel实例的bs,然后再做next,但我觉得太复杂了,不是一个简单方便的获取方式。
【问题讨论】: