diff options
| author | Tom Christie | 2014-11-18 14:49:00 +0000 | 
|---|---|---|
| committer | Tom Christie | 2014-11-18 14:49:00 +0000 | 
| commit | 5e74f02d61e05d38bf4e22c6227144def2a96128 (patch) | |
| tree | ff688e136f6a686162f0d4875fe51373bae1b771 | |
| parent | 0f508c58211051c873aae5a2d1c65a0c595e732a (diff) | |
| download | django-rest-framework-5e74f02d61e05d38bf4e22c6227144def2a96128.tar.bz2 | |
Note removal of 'save_object' and fail loudly if it exists
| -rw-r--r-- | docs/topics/3.0-announcement.md | 2 | ||||
| -rw-r--r-- | rest_framework/serializers.py | 7 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/docs/topics/3.0-announcement.md b/docs/topics/3.0-announcement.md index 885fc183..90cbda4d 100644 --- a/docs/topics/3.0-announcement.md +++ b/docs/topics/3.0-announcement.md @@ -84,6 +84,8 @@ The resulting API changes are further detailed below.  The `.restore_object()` method is now replaced with two separate methods, `.create()` and `.update()`. +These methods also replace the optional `.save_object()` method, which no longer exists. +  When using the `.create()` and `.update()` methods you should both create *and save* the object instance. This is in contrast to the previous `.restore_object()` behavior that would instantiate the object but not save it.  The following example from the tutorial previously used `restore_object()` to handle both creating and updating object instances. diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index e7e93f38..84282cdb 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -108,6 +108,13 @@ class BaseSerializer(Field):          raise NotImplementedError('`create()` must be implemented.')      def save(self, **kwargs): +        assert not hasattr(self, 'save_object'), ( +            'Serializer `%s.%s` has old-style version 2 `.save_object()` ' +            'that is no longer compatible with REST framework 3. ' +            'Use the new-style `.create()` and `.update()` methods instead.' % +            (self.__class__.__module__, self.__class__.__name__) +        ) +          validated_data = dict(              list(self.validated_data.items()) +              list(kwargs.items()) | 
