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。
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。