我发现ModelSerializer
和ModelViewSet
都有update()
方法,我认为两者几乎相同。这是正确的吗?
from rest_framework import serializers
from rest_framework import viewsets
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
fields = '__all__'
def update(self, instance, validated_data):
# update of model instances
instance.save()
return instance
class FooModelAPI(viewsets.ModelViewSet):
serializer_class = MySerializer
queryset = my_queryset
def update(self, request, *args, **kwargs):
# updateds model instances and save
return Response("OK")
在上面的代码片段中,我是否可以使用ModelSerializer或ModelViewSet来更新模型实例?
答案 0 :(得分:2)
如果将update()方法放在视图中,它将绑定到视图本身;意味着您只能在特定网址中使用它。 但是,如果您在序列化程序中使用它,则可以在整个应用程序的视图中持久使用它。