我曾经使用 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行为
我很困惑,我需要覆盖UserSerializer的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)
答案 0 :(得分:3)
是的,您需要覆盖create
的{{1}}和update
方法。
我花了很多时间尝试使嵌套的可写序列化程序与DRF 2.x协同工作,我解决的问题越多,角落用例就越多。
因此,Tom决定由开发人员来处理创建和更新。
创建1个嵌套级别的documentation provides an example,但更新和/或嵌套级别更高