如何在 Django Rest 框架中的序列化器中获取外键的属性?

问题描述 投票:0回答:1

我有两个模型,名为

Market
Exchange

class Exchange(models.Model):
    name = models.CharField(max_length=20)


class Market(models.Model):
    exchange = models.ForeignKey(Exchange, on_delete=models.CASCADE)
    price = models.FloatField(default=0.0)

我需要做的是在

name
模型中获取
Exchange
字段
MarketSerializer
->

class MarketSerializer(serializers.ModelSerializer):
    class Meta:
        model = Market
        fields = ('exchange_name', 'price', )

我怎样才能做到这一点?

python django django-models django-rest-framework django-serializer
1个回答
0
投票

您可以像这样使用

SerializerMethodField()
来存档这些东西

class MarketSerializer(serializers.ModelSerializer):
    exchange_name = serializers.SerializerMethodField()

    class Meta:
        model = Market
        fields = ('exchange_name', 'price', )

    def get_exchange_name(self, obj):
        return obj.exchange.name 
© www.soinside.com 2019 - 2024. All rights reserved.