Python Django rest框架序列化程序外键

Python Django rest框架序列化程序外键,python,django,Python,Django,因此,我有以下模型在我的 models.py: class Coordonnees(models.Model): latitude = models.CharField(max_length=20) longitude = models.CharField(max_length=20) def __str__(self): return self.latitude+','+self.longitude class Ecole(models.Model)

因此,我有以下模型在我的 models.py:

class Coordonnees(models.Model):
    latitude = models.CharField(max_length=20)
    longitude = models.CharField(max_length=20)
    def __str__(self):
        return self.latitude+','+self.longitude


class Ecole(models.Model):
    nomEcole = models.CharField(max_length=100)
    numTel = models.CharField(max_length=100)
    coordonnee = models.ForeignKey(Coordonnees, on_delete=models.CASCADE)
    def __str__(self):
        return self.nomEcole
在my serializers.py中:

class CoordonneesSerializer(serializers.ModelSerializer):
    class Meta:
            model = Coordonnees
            #our fields
            fields = ('id','latitude','longitude')



class EcoleSerializer(serializers.ModelSerializer):
    class Meta:
            model = Ecole
            #our fields
            fields = ('id','nomEcole','numTel','coordonnee')
问题是,当我检查我的“Ecole”的json文件时,我得到以下输出

[{"id":1,"nomEcole":"draoui","numTel":"28747484","coordonnee":1}]

所以问题是:我想显示纬度和经度,而不是“Coordonne”中的1,最简单的生成方法是在Meta类中使用
depth
选项

class EcoleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ecole
        depth = 1
        fields = ('id', 'nomEcole', 'numTel', 'coordonnee')
然后,输出将如下所示:

[
    {
        "id":1,
        "nomEcole":"draoui",
        "numTel":"28747484",
        "coordonnee": [
            {
                "id": 1,
                "latitude": 0,
                "longitude": 0
            }
        ]
    }
]

最简单的生成方法是在元类中使用
depth
选项

class EcoleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ecole
        depth = 1
        fields = ('id', 'nomEcole', 'numTel', 'coordonnee')
然后,输出将如下所示:

[
    {
        "id":1,
        "nomEcole":"draoui",
        "numTel":"28747484",
        "coordonnee": [
            {
                "id": 1,
                "latitude": 0,
                "longitude": 0
            }
        ]
    }
]

您希望在Django Rest框架中序列化一个。要实现这一点,可以使用嵌套模型的序列化程序作为序列化程序字段:

class EcoleSerializer(serializers.ModelSerializer):
    coordonnee = CoordonneesSerializer()

    class Meta:
        model = Ecole
        #our fields
        fields = ('id', 'nomEcole', 'numTel', 'coordonnee')

您希望在Django Rest框架中序列化一个。要实现这一点,可以使用嵌套模型的序列化程序作为序列化程序字段:

class EcoleSerializer(serializers.ModelSerializer):
    coordonnee = CoordonneesSerializer()

    class Meta:
        model = Ecole
        #our fields
        fields = ('id', 'nomEcole', 'numTel', 'coordonnee')