我如何在Django Rest序列化器中批量创建

发布于 2021-01-29 14:58:18

我曾经使用 allow_add_remove = True ,它在Django rest
2.0中可用,用于编写可嵌套的序列化程序,但在3.0中不可用,我很难实现它。

我想做这样的事情

class UserSerialzier():
    project = ProjectSerilaizer(many=True, allow_add_remove=True, read_only=False)


class ProjectSerialzier():
    ideas = IdeaSerilaizer(many=True, allow_add_remove=True, read_only=False)
    sources = SourceSerilaizer(many=True, allow_add_remove=True, read_only=False)

class IdeaSerialzier():
    pass

class SourceSerialzier():
    pass

现在我不知道如何在DRF 3.0中实现allow_add_remove行为

我很困惑,我需要重写UserSerializercreateupdate方法吗

或者我需要为每个模型创建单独的IdeaListSerializer

class IdeaListSerializer(serializers.ListSerializer):
    def create(self, validated_data):
        ideas = [Idea(**item) for item in validated_data]
        return Ideas.objects.bulk_create(books)
关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    是的,您确实需要重写create和的update方法UserSerializer

    我花了很多时间试图使嵌套的可写序列化程序与DRF 2.x一起使用,而我修复的问题越多,角落用例所引起的问题就越多。

    因此,汤姆(Tom)决定应由开发人员来处理创建和更新。

    文档提供了创建1个嵌套级别的示例,但对于更新和/或具有更多嵌套级别的示例相同



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看