Django REST JSON API:如何包含嵌套的复合文档?
使用Django REST JSON Api,即Django REST Framework jsonapi==3.1.0,并具有以下数据结构:父级、singleChild、manyGrandChildren(都只是虚拟名称,singleChild表示一对一关系,manyGrandChildren表示一对多嵌套关系) 我的代码不起作用,因为我无法访问我的响应中的许多Randshildren,这类似于 如果我的url?include=语句不正确,也请更正Django REST JSON API:如何包含嵌套的复合文档?,django,django-rest-framework,Django,Django Rest Framework,使用Django REST JSON Api,即Django REST Framework jsonapi==3.1.0,并具有以下数据结构:父级、singleChild、manyGrandChildren(都只是虚拟名称,singleChild表示一对一关系,manyGrandChildren表示一对多嵌套关系) 我的代码不起作用,因为我无法访问我的响应中的许多Randshildren,这类似于 如果我的url?include=语句不正确,也请更正 如何实现这一点?要在序列化程序中包含孙子,我
如何实现这一点?要在序列化程序中包含孙子,我们需要在子序列化程序上定义包含的\u序列化程序和包含的\u资源,并在子序列化程序中包含孙子。在这种情况下,我们可以从父序列化程序访问它们。调皮的事情是关系。对于一对多关系,我们需要将“manyGrandChildren_集”设置为包含的_序列化程序的键,并将其作为“manyGrandChildren_集”字段包含在类元字段中 范例
class Child(serializers.HyperlinkedModelSerializer):
included_serializers = {
'manyGrandChildren_set': manyGrandChildrenSerializer,
}
class Meta:
model = models.Child
fields = [
...
'manyGrandChildren_set'
...
]
class JSONAPIMeta:
included_resources = ['manyGrandChildren_set']
class Parent(serializers.HyperlinkedModelSerializer):
included_serializers = {
'singleChild': singleChildSerializer,
}
class Meta:
model = models.Parent
fields = [
'field1',
'field2',
'url',
]
class JSONAPIMeta:
included_resources = ['singleChild']
class Child(serializers.HyperlinkedModelSerializer):
included_serializers = {
'manyGrandChildren_set': manyGrandChildrenSerializer,
}
class Meta:
model = models.Child
fields = [
...
'manyGrandChildren_set'
...
]
class JSONAPIMeta:
included_resources = ['manyGrandChildren_set']
class Parent(serializers.HyperlinkedModelSerializer):
included_serializers = {
'singleChild': singleChildSerializer,
}
class Meta:
model = models.Parent
fields = [
'field1',
'field2',
'url',
]
class JSONAPIMeta:
included_resources = ['singleChild']