Как получить конкретное поле в сериализаторе с related_name с помощью Django rest

у меня есть модель ContactPhone и в модели ссылка на модель Lead с полем lead_id и ralated_name phones

class ContactPhone(models.Model):
    phone_number = PhoneNumberField(blank=True, default='')
    phone_type = models.CharField(
        max_length=100,
        blank=True,
        choices=ContactPhoneInterface.phone_number_types,
        default=PhoneNumbers.mobile.name
    )
    contact_id = models.ForeignKey(
        Contact,
        on_delete=models.CASCADE,
        null=True,
        related_name='phones_c'
    )
    lead_id = models.ForeignKey(
        Lead,
        on_delete=models.CASCADE,
        null=True,
        related_name='phones'
    )

С помощью этого класса serilizer я получил id таблицы ContactPhone, но мне нужно получить поле phone_number в ContactPhone.

class LeadListSerializer(serializers.ModelSerializer):

    class Meta:
        model = Lead
        fields = (
            'id',
            'full_name',
            'responsible_id',
            'phones',
            'emails',
        )

Пробовал разные варианты решения этой проблемы, но это не помогает. На скриншоте вы можете видеть ответ на данный момент, id ContactPhone

enter image description here

Если вы хотите вернуть список определенных полей из связанной модели, вы можете использовать serializers.SlugRelatedField

class LeadListSerializer(serializers.ModelSerializer):

    phones = serializers.SlugRelatedField(
        many=True,
        read_only=True,
        slug_field='phone_number'
    )

    class Meta:
        model = Lead
        fields = (
            'id',
            'full_name',
            'responsible_id',
            'phones',
            'emails',
        )
Вернуться на верх