From 78f5bcb5cbc9cbed6c335734e81714bc2daa294a Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 5 Dec 2014 13:07:48 +0000 Subject: [PATCH] Update documentation --- api-guide/serializers/index.html | 8 ++++---- tutorial/1-serialization/index.html | 22 ++++++++-------------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/api-guide/serializers/index.html b/api-guide/serializers/index.html index 75c3f4541..08a68bb08 100644 --- a/api-guide/serializers/index.html +++ b/api-guide/serializers/index.html @@ -807,9 +807,9 @@ serializer.errors # would need to be handled. profile = instance.profile - user.username = validated_data.get('username', instance.username) - user.email = validated_data.get('email', instance.email) - user.save() + instance.username = validated_data.get('username', instance.username) + instance.email = validated_data.get('email', instance.email) + instance.save() profile.is_premium_member = profile_data.get( 'is_premium_member', @@ -821,7 +821,7 @@ serializer.errors ) profile.save() - return user + return instance

Because the behavior of nested creates and updates can be ambiguous, and may require complex dependancies between related models, REST framework 3 requires you to always write these methods explicitly. The default ModelSerializer .create() and .update() methods do not include support for writable nested representations.

It is possible that a third party package, providing automatic support some kinds of automatic writable nested representations may be released alongside the 3.1 release.

diff --git a/tutorial/1-serialization/index.html b/tutorial/1-serialization/index.html index 9b5ffb350..292b10996 100644 --- a/tutorial/1-serialization/index.html +++ b/tutorial/1-serialization/index.html @@ -411,8 +411,7 @@

Setting up a new environment

Before we do anything else we'll create a new virtual environment, using virtualenv. This will make sure our package configuration is kept nicely isolated from any other projects we're working on.

-
:::bash
-virtualenv env
+
virtualenv env
 source env/bin/activate
 

Now that we're inside a virtualenv environment, we can install our package requirements.

@@ -460,12 +459,8 @@ class Snippet(models.Model): title = models.CharField(max_length=100, blank=True, default='') code = models.TextField() linenos = models.BooleanField(default=False) - language = models.CharField(choices=LANGUAGE_CHOICES, - default='python', - max_length=100) - style = models.CharField(choices=STYLE_CHOICES, - default='friendly', - max_length=100) + language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100) + style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100) class Meta: ordering = ('created',) @@ -483,14 +478,11 @@ from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES class SnippetSerializer(serializers.Serializer): pk = serializers.IntegerField(read_only=True) - title = serializers.CharField(required=False, allow_blank=True - max_length=100) + title = serializers.CharField(required=False, allow_blank=True, max_length=100) code = serializers.CharField(style={'type': 'textarea'}) linenos = serializers.BooleanField(required=False) - language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, - default='python') - style = serializers.ChoiceField(choices=STYLE_CHOICES, - default='friendly') + language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python') + style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly') def create(self, validated_data): """ @@ -552,6 +544,8 @@ data = JSONParser().parse(stream)
serializer = SnippetSerializer(data=data)
 serializer.is_valid()
 # True
+serializer.validated_data
+# OrderedDict([('title', ''), ('code', 'print "hello, world"\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')])
 serializer.save()
 # <Snippet: Snippet object>