2013-06-24 110 views
2

我正在按照教程here为我的API创建基于泛型类的视图 - 但是,我遇到了一个小问题。我想部分地更新视图背后的模型。我以前可以通过在创建序列化程序时使用partial属性来完成此操作。但是,似乎一旦我开始使用基于类的视图,我就无法设置是否允许对模型进行部分更新。我如何覆盖ModelSerializer的partial属性?我的代码非常简单:Rest框架基于部分视图的基于类的视图

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

回答

6

访问API对于部分更新使用补丁。

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

+0

谢谢汤姆,工作。部分的任务只是我拼命尝试任何东西。 – KerrM

相关问题