如何在Django-Rest-Framework中使用泛型进行PUT(部分更新)?

Chr*_*kes 3 django django-rest-framework

如果我有一个类似于此的类视图,

class MovieDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Movie.objects.all()
    serializer_class = MovieSerializer
Run Code Online (Sandbox Code Playgroud)

如何使序列化接受部分更新?目前它所处的位置Put将擦除所述对象的现有数据.

soo*_*oot 5

如果您使用的是DRF路线,请使用PATCH方法代替PUT.

如果您自己编写urls配置,请将其分配给视图中的partial_update方法RetrieveUpdateDestroyAPIView.

如果您自己获得序列化,请将partial=True其传递给您的Serializer

partial = kwargs.pop('partial', False)
serializer = self.get_serializer(instance, data=request.data, partial=partial)
Run Code Online (Sandbox Code Playgroud)