如何在序列化器方法字段中获取所有实例

问题描述 投票:0回答:1

如何在序列化器方法字段中获取所有实例

我有一个序列化器方法字段,并且我将上下文形式的列表数据传递给序列化器,如下所示。

name_list = [ "abc", "def",....]
obj_list = abc.objects.all() 

Serializer = abcSerializer (obj_list, context=name_list, many=True)

    class abcSerializer (serializers.ModelSerializer):
        class Meta:
            model = abc
            xyz = serializers.SerializerMethodField ("getXYZ", read_only=True)
            def getXYZ (self, data):
                # here I want all instanceses, but I got only one instance in data. 

我想将name_list数据一一附加到具有相同索引的数据实例中?如何在序列化器方法字段中获取所有实例?

python django django-rest-framework serializer
1个回答
0
投票

为什么需要所有实例?如果要在所有实例中进行操作,最好先进行操作,然后再将其作为参数传递给Serializer。如果要获取单个实例,则应在data参数中获取值。但是您的缩进是错误的。尝试这样:

class abcSerializer (serializers.ModelSerializer):
    xyz = serializers.SerializerMethodField("getXYZ")

    class Meta:
       model = abc

    def getXYZ(self, data):
       print(data) # it will print a instance of abc
       return value_based_on_data
© www.soinside.com 2019 - 2024. All rights reserved.