Django REST框架更改JSON结构
我正在从事Django项目,我现在拥有的数据如下:Django REST框架更改JSON结构,json,django,django-rest-framework,django-serializer,Json,Django,Django Rest Framework,Django Serializer,我正在从事Django项目,我现在拥有的数据如下: [ { "sid": "A1", "annofk": [ { "id": 8, "chrs": "chr1",
[
{
"sid": "A1",
"annofk": [
{
"id": 8,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
},
{
"id": 9,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
},
{
"id": 10,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
}
]
},
{
"sid": "A2",
"annofk": [
{
"id": 5,
"chrs": "chr1",
"seq_start": 24613130,
"seq_end": 24613155,
},
{
"id": 11,
"chrs": "chr1",
"seq_start": 24613130,
"seq_end": 24613154,
}
]
}
]
我真的想把结构改成这样:
[
{
"sid": "A1",
"annofk": {
"id": 8,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
}
},
{
"sid": "A1",
"annofk": {
"id": 9,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
}
},
{
"sid": "A1",
"annofk": {
"id": 10,
"chrs": "chr1",
"seq_start": 18262640,
"seq_end": 18262660,
}
},
{
"sid": "A2",
"annofk": {
"id": 5,
"chrs": "chr1",
"seq_start": 24613130,
"seq_end": 24613155,
}
},
{
"sid": "A2",
"annofk": {
"id": 11,
"chrs": "chr1",
"seq_start": 24613130,
"seq_end": 24613154,
}
}
]
这些数据来自两个表(模型)。这些数据来自反向查找结果。这里有两个序列化程序:
class AnnotationSerializer(serializers.ModelSerializer):
class Meta:
model = annotation
fields = "__all__"
class SeqSerializer(serializers.ModelSerializer):
annofk = AnnotationSerializer(many=True)
class Meta:
model = sequence
fields = ('sid','annofk')
模型如下:
class sequence(models.Model):
sid = models.CharField(max_length=50)
class Meta:
db_table = "sequence_table"
class annotation(models.Model):
chrs = models.CharField(max_length=100)
seq_start = models.IntegerField(null=True,blank=True)
seq_end = models.IntegerField(null=True,blank=True)
fk = models.ForeignKey("sequence",on_delete=models.CASCADE,null=True,blank=True,related_name='annofk')
isDelete = models.BooleanField(default=False)
class Meta:
db_table = "annotation_table"
我尝试重新编写to_表示(),但没有找到方法。有什么简单的方法可以改变数据结构吗?是否使用SerializerMethodField()?
任何建议都将不胜感激。实际上,我有三个表(模型),第三个表也是与序列表的一对一关系。我使用
prefetch\u related
根据第三个表中的值过滤序列对象。现在我想把数据放到一个datatable中,这就是为什么我想改变数据的结构。