django - DRF: Do DRF serializers, SerializerMethodField 有执行顺序
问题描述
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”之前执行。
解决方案
执行顺序按照 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"]
在上述情况下,首先调用“get_name”,然后调用“get_age”。
将顺序更改为
class Meta:
fields = ["age", "name"]
将首先执行 get_age。