2013-06-24 3 views
2

Я следую приведенному выше учебному пособию here, чтобы создать общие представления класса для моего API. Однако я столкнулся с небольшой проблемой. Я хотел бы частично обновить модель позади представления. Раньше я мог это сделать, используя свойство partial, когда я создал сериализатор. Однако кажется, что, как только я начну использовать общие представления на основе класса, я теряю возможность установить, могу ли я позволить частичные обновления модели. Как я могу переопределить свойство partial ModelSerializer? Мой код довольно прост:Представления на основе класса Open Framework с частичными присваиваниями

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 

Я пытаюсь получить доступ к API через PUT

ответ

6

Для частичных обновлений используйте PATCH.

Также обратите внимание, что partial не является опцией в метаклассе сериализатора, а вместо этого устанавливается на создание экземпляра сериализатора.

+0

Спасибо, Том, это сработало. Назначение на частичное было только мне отчаянно пытаться что угодно. – KerrM

 Смежные вопросы

  • Нет связанных вопросов^_^