具有部分赋值的基于Rest Framework类的视图

时间:2013-06-24 19:54:42

标签: django django-rest-framework

我正在按照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

1 个答案:

答案 0 :(得分:6)

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

另请注意,partial不是序列化程序元类的选项,而是设置为实例化序列化程序。