【发布时间】:2017-12-26 18:20:05
【问题描述】:
我创建了一个 REST API,用于填充来自 Model_A 的数据。但现在我需要将另一个数据字段添加到来自另一个模型的 API 中。如何将ModelParent 中的parent 字段添加到我的API 中,并且parent 字段也必须与Model_A 项目正确关联,例如下面是我尝试做但不工作的示例( 注意:无论如何都不允许更改model.py):
API:
class ReportAPI(APIView):
def get(self, request):
project_data = []
all_projects = Model_A.objects.all()
for project in all_projects:
project_data.append(project)
project_parent = ModelParent.objects.filter(project=project.id)
for parent in project_parent:
project_data.append(parent)
project_serializer = SerializerA(all_projects, many=True)
return Response(project_serializer.data)
其余所需代码:
型号:
class Model_A(models.Model):
project_name = models.CharField(max_length=50, unique=True)
project_type = models.CharField(max_length=50, choices=p_type)
class ModelParent(models.Model):
project = models.ForeignKey('Model_A', on_delete=models.CASCADE, related_name='+')
parent = models.ForeignKey('ModelParent', on_delete=models.SET(''), related_name='+', null=True, blank=True)
序列化器:
class SerializerA(serializers.ModelSerializer):
class Meta:
model = Model_A
fields = ('id', 'project_name','project_type')
depth = 1
我的 API 的当前输出
[
{
"id": 1,
"project_name": "Project A",
"project_type": "advertisement",
}
]
期望的输出:
[
{
"id": 1,
"project_name": "Project A",
"project_type": "advertisement",
"parent_list": [
{
id : "1",
parent : "Parent 1",
},
{
id : "2",
parent : "Parent 2",
},
]
}
]
任何帮助都非常感谢!
【问题讨论】:
标签: python api django-rest-framework