首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从序列化程序的数组中创建ListSerializer

如何从序列化程序的数组中创建ListSerializer
EN

Stack Overflow用户
提问于 2019-04-02 09:54:35
回答 1查看 370关注 0票数 0

我有一个使用函数填充的序列化程序。所以我将这个序列化程序的列表堆叠到一个数组中。

我如何将这个序列化程序数组转换为ListSerializer呢?

下面是我的代码:

serializers.py

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
 ...
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列表

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-03 19:39:54

如果有人遇到同样的问题,这里是解决方案,只需创建一个生成ListSerializer的字典数组,它就应该可以工作了

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55465859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档