DRF: Do DRF serializers, SerializerMethodField have execution order

Viewed 280
class ProfileAPI(serializers.Serializer):
    name = serializers.SerializerMethodField()
    age = serializers.SerializerMethodField()

    def get_name(self, obj):
        return "name"

    def age(self,obj):
        return 78

is there ordering while execution of SerilaizerMethodField or it is random, means will "get_name" is executed before "get_age".

1 Answers

The execution ordering goes by the order of fields in meta.

class ProfileAPI(serializers.Serializer):
    name = serializers.SerializerMethodField()
    age = serializers.SerializerMethodField()

    def get_name(self, obj):
        return "name"

    def age(self,obj):
        return 78

    class Meta:
        fields = ["name", "age"]

In the above case "get_name" is called first and then "get_age".


changing the order to

class Meta:
     fields = ["age", "name"]

would execute get_age first.

Related