如何在序列化器方法字段中获取所有实例
我有一个序列化器方法字段,并且我将上下文形式的列表数据传递给序列化器,如下所示。
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数据一一附加到具有相同索引的数据实例中?如何在序列化器方法字段中获取所有实例?
为什么需要所有实例?如果要在所有实例中进行操作,最好先进行操作,然后再将其作为参数传递给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