'Django REST框架序列化器外键'

2024-04-19 01:00:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在我的 模型.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

在我的序列化程序.py公司名称:

^{2}$

问题是,当我检查我的“Ecole”的json文件时,我得到以下输出

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

所以问题是:我想显示经度和纬度,而不是“coordonee”中有1


Tags: pyself名称modelmodelsdef公司length
2条回答

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

class EcoleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ecole
        depth = 1
        fields = ('id', 'nomEcole', 'numTel', 'coordonnee')

然后输出如下:

^{pr2}$

您希望在Django Rest框架中序列化nested relationship。为此,可以将嵌套模型的序列化程序用作序列化程序字段:

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

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

相关问题 更多 >