2

我正在按照此处列出的教程为我的 API 创建基于通用类的视图 - 但是,我遇到了一个小问题。我想部分更新视图后面的模型。partial在我创建序列化程序时,我曾经能够通过使用该属性来做到这一点。但是,似乎一旦我开始使用基于通用类的视图,我就无法设置是否允许对模型进行部分更新。如何覆盖partialModelSerializer 的属性?我的代码很简单:

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

4

1 回答 1

7

对于部分更新,请使用 PATCH。

另请注意,这partial不是序列化器元类的选项,而是设置在实例化序列化器上。

于 2013-06-25T08:50:58.173 回答