[Django]-Foreign key value in Django REST Framework

38👍

RelatedField is the base class for all fields which work on relations. Usually you should not use it unless you are subclassing it for a custom field.

In your case, you don’t even need a related field at all. You are only looking for a read-only single foreign key representation, so you can just use a CharField.

class StationSerializer(serializers.ModelSerializer):
    station = serializers.CharField(read_only=True)

    class Meta:
        model = Station


class FlatSerializer(serializers.ModelSerializer):
    station_name = serializers.CharField(source='station.name', read_only=True)

    class Meta:
        model = Flat
        fields = ('station_name', )

You also appear to want the name of the Station object in your FlatSerializer. You should have the source point to the exact field, so I updated it to station.name for you.

Leave a comment