Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django REST框架更改JSON结构_Json_Django_Django Rest Framework_Django Serializer - Fatal编程技术网

Django REST框架更改JSON结构

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",

我正在从事Django项目,我现在拥有的数据如下:

[
        {
            "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中,这就是为什么我想改变数据的结构。