我曾经使用 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行为
我很困惑,我需要重写UserSerializercreate和update方法吗
create
update
或者我需要为每个模型创建单独的IdeaListSerializer
class IdeaListSerializer(serializers.ListSerializer): def create(self, validated_data): ideas = [Idea(**item) for item in validated_data] return Ideas.objects.bulk_create(books)
是的,您确实需要重写create和的update方法UserSerializer。
UserSerializer
我花了很多时间试图使嵌套的可写序列化程序与DRF 2.x一起使用,而我修复的问题越多,角落用例所引起的问题就越多。
因此,汤姆(Tom)决定应由开发人员来处理创建和更新。
该文档提供了创建1个嵌套级别的示例,但对于更新和/或具有更多嵌套级别的示例相同