Как получить атрибут внешнего ключа внутри сериализатора во фреймворке Django REST?

У меня есть две модели с именами 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', )

Как я могу это сделать?

Вы можете архивировать эти вещи, используя 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 
Вернуться на верх