django - DRF : Do DRF serializers, SerializerMethodField 有执行顺序

标签 django django-rest-framework django-serializer

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。

关于django - DRF : Do DRF serializers, SerializerMethodField 有执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62101669/

相关文章:

django - 如何从 DRF 序列化器中序列化器键值的另一个模型获取列表作为值?

Django:如何在CreateView中自动填充ForeignKey

django 模块来处理定期订阅?

python - 如何创建和序列化非托管模型 Django

django - 用户密码未使用 Rest Framework 加密 Django

python - 在 Django 中,如何序列化返回 dict 对象(使用 .values() 创建)的 QuerySet

python - Django import/export : Admin interface "TypeError at/"

python - 在gunicorn worker 之间共享内存中的动态数据

django - 获取序列化器中字段的属性(django rest 框架)

android - 如何解决错误 `java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8000`