Rename serialized field from modelΒΆ

We are given following model:

from rest_framework import serializers

class System(BaseModel):
   """Define systems reflected on the status page."""

   system_id = models.BigAutoField(primary_key=True, verbose_name="id")
   name = models.CharField(max_length=255)
   description = models.TextField(null=True, blank=True)

class SystemSerializer(serializers.ModelSerializer):
   """Serializer for the System model."""

   class Meta:
      """Meta options for the serializer."""
      model = models.System
      fields = "__all__"

We want that in the serialized output field system_id is renamed to id.

To achieve this, use the source parameter of the Field class:

from rest_framework import serializers

class SystemSerializer(serializers.ModelSerializer):
   """Serializer for the System model."""

   id = serializers.IntegerField(source="system_id")

   class Meta:
      """Meta options for the serializer."""
      model = models.System
      fields = ("id", "name", "description")