Django Rest API: Сериализатор не показывает значения полей внешнего ключа

Я пытаюсь перечислить значения FacilityAddressSerializer внутри FacilitySearchSerializer. Вот что я пробовал. Я получаю все значения FacilitySearchSerializer, но значения FacilityAddressSerializer отображаются как Null:

serializers.py

class FacilityAddressSerializer(serializers.ModelSerializer):
    class Meta:
        model = FacilityAddress
        fields = (
            "id",
            "PrimaryAddress",
            "SecondaryAddress",
            "City",
            "RegionOrState",
            "PostalCode",
            "Geolocation",
            "AddressInfo"
        )

class FacilitySearchSerializer(serializers.ModelSerializer):
    AddressInfo = FacilityAddressSerializer(source="fa")
    class Meta:
        model = Facility
        fields = (
            "id",
            "Name",
            "AddressInfo",
            "ListingVerified",
            "mainimage",
            "AdministratorCell",
            "Capacity",
            "PriceRangeMin",
            "PriceRangeMax",
        )
        read_only_fields = ("id", "Name", "ListingVerified", "mainimage", "AdministratorCell", "Capacity", "FeaturedVideo", "PriceRangeMin", "PriceRangeMax")

models.py

class Facility(models.Model):
    Name = models.CharField(max_length=150, null=True, blank=False)
    mainimage = models.ImageField(null=True, blank=True)
    Capacity = models.IntegerField(null=True, blank=True)
    TelephoneNumber = models.CharField(max_length=30, null=True, blank=True)
    AdministratorCell = PhoneNumberField(null=True, blank=True)
    PriceRangeMin = models.IntegerField(null=True, blank=True)
    PriceRangeMax = models.IntegerField(null=True, blank=True)

class FacilityAddress(models.Model):
    PrimaryAddress = models.CharField(max_length=150, null=True, blank=True)
    SecondaryAddress = models.CharField(max_length=150, null=True, blank=True)
    City = models.CharField(max_length=150, null=True, blank=True)
    RegionOrState = models.CharField(max_length=50, null=True, blank=True)
    PostalCode = models.CharField(max_length=30, null=True, blank=True)
    Geolocation = models.CharField(max_length=30, null=True, blank=True)
    AddressInfo = models.ForeignKey(Facility, null=True, blank=True, on_delete=models.CASCADE, related_name='fa')

После того, как я добавил (many=True) рядом с source=fa, все работает. Я думал, что мне это не нужно, так как я использую поля внешнего ключа, а не многие поля, но, похоже, я ошибался.

Вернуться на верх