我正在按照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不是序列化程序元类上的选项,而是在实例化序列化程序时设置。

10-06 05:17
查看更多