Change the order of fields in normal serializer response

Viewed 3677

Using Django REST framework I want to change the serializer response fields order dynamically by a list of given field names.

Output from DRF is the following:

{
  "items": [
    {
      "name": "John",
      "age": 25,
      "id": 3
    },
    {
      "name": "Sam",
      "age": 20,
      "id": 8
    }
  ]
}

My filed order list is:

order_list = ['id', 'age', 'name']

What I want is:

{
  "items": [
    {
      "id": 3,
      "age": 25,
      "name": "John"
    },
    {
      "id": 8,
      "age": 20,
      "name": "Sam"
    }
  ]
}

Serializer code:

class ItemSerializer(serializers.Serializer):
    name = serializers.CharField()
    id = serializers.IntegerField()
    age = serializers.IntegerField()    
2 Answers
Related