DRF:DRF序列化器、SerializerMethodField是否有执行顺序

DRF: Do DRF serializers, SerializerMethodField have execution order

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

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

    def age(self,obj):
        return 78

在执行 SerilaizerMethodField 时是否有顺序或者它是随机的,意味着 "get_name" 在 "get_age".

之前执行

执行顺序按照元中字段的顺序进行。

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"]

在上述情况下,首先调用 "get_name",然后调用 "get_age"。


将顺序更改为

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

会先执行get_age。