我有一个使用函数填充的序列化程序。所以我将这个序列化程序的列表堆叠到一个数组中。
我如何将这个序列化程序数组转换为ListSerializer呢?
下面是我的代码:
serializers.py
class CourseSerializer(serializers.ModelSerializer):
class Meta:
model = models.Course
fields = (
'name',
)
class ErrorSerializer(serializers.Serializer):
error = serializers.CharField(max_length=100)
class Meta:
fields=(
'error',
)
class EqSerializer(serializers.Serializer):
course = CourseSerializer(many=False)
error = ErrorSerializer(many=False)api.py
...
for c in serializer.validated_data:
course = models.Course.objects.filter(id=1)#simplifying
if len(course)==0:
error="No Courses Found"
elif len(course)>1:
error="Too many courses"
else:
x = serializers.CourseSerializer(course[0])
e = serializers.ErrorSerializer(data={'error':'none'} )
e.is_valid()
equate = serializers.EqSerializer(data={'course':x.data,'error':e.data})
ferr.append(equate) #ferr is my array of EqSerializer
resp = serializers.EqSerializer(data=ferr,many=True)#problem is here如何将此ferr转换为serializers.EqSerializer列表
发布于 2019-04-03 19:39:54
如果有人遇到同样的问题,这里是解决方案,只需创建一个生成ListSerializer的字典数组,它就应该可以工作了
for c in serializer.validated_data:
course = models.Course.objects.filter(id=1)#simplifying
if len(course)==0:
error="No Courses Found"
elif len(course)>1:
error="Too many courses"
else:
x = serializers.CourseSerializer(course[0])
e = serializers.ErrorSerializer(data={'error':'none'} )
e.is_valid()
ferr.append({'course':x.data,'error':e.data})
resp = serializers.EqSerializer(data=ferr,many=True)https://stackoverflow.com/questions/55465859
复制相似问题