我正在按照here布局的教程为我的API创建基于通用类的视图-但是,我遇到了一个小问题。我想部分更新视图后面的模型。创建序列化程序时,我曾经能够通过使用partial
属性来执行此操作。但是,似乎一旦开始使用基于泛型类的视图,我就无法设置是否允许部分更新模型。如何覆盖ModelSerializer的partial
属性?我的代码很简单:
class DejavuUserDetail(generics.RetrieveUpdateAPIView):
'''
Get a user or update a user
'''
lookup_field = "email"
queryset = DejavuUser.objects.all()
serializer_class = UserSerializer
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = DejavuUser
partial = True
def restore_object(self, attrs, instance=None):
"""
Given a dictionary of deserialized field values, either update
an existing model instance, or create a new model instance.
"""
if instance is not None:
#set the required fields and return the instance
我正在尝试通过PUT访问API
最佳答案
对于部分更新,请使用PATCH。
还要注意,partial
不是序列化程序元类上的选项,而是在实例化序列化程序时设置。