diff options
| -rw-r--r-- | docs/topics/3.0-announcement.md | 35 | 
1 files changed, 31 insertions, 4 deletions
diff --git a/docs/topics/3.0-announcement.md b/docs/topics/3.0-announcement.md index 35d725ff..144d3550 100644 --- a/docs/topics/3.0-announcement.md +++ b/docs/topics/3.0-announcement.md @@ -125,14 +125,41 @@ The corresponding code would now look like this:          logging.info('Creating ticket "%s"' % name)          extras = {'user': request.user}  # Include the user when saving.          serializer.save(extras=extras) -  + +#### Printable serializer reprensentations. + +Serializer instances now support a printable representation that allows you to inspect the fields present on the instance. + +For instance, given the following example model: + +    class LocationRating(models.Model): +        location = models.CharField(max_length=100) +        rating = models.IntegerField() +        created_by = models.ForeignKey(User) + +Let's create a simple `ModelSerializer` class c. + +    class LocationRatingSerializer(serializer.ModelSerializer): +        class Meta: +            model = LocationRating + +We can now inspect its representation in the Django shell, using `python manage.py shell`... + +    >>> serializer = LocationRatingSerializer() +    >>> print(serializer)  # Or use `print serializer` in Python 2.x +    LocationRatingSerializer(): +        id = IntegerField(label='ID', read_only=True) +        location = CharField(max_length=100) +        rating = IntegerField() +        created_by = PrimaryKeyRelatedField(queryset=User.objects.all()) +  #### Always use `fields`, not `exclude`. -The `exclude` option is no longer available. You should use the more explicit `fields` option instead. +The `exclude` option on `ModelSerializer` is no longer available. You should use the more explicit `fields` option instead.  #### The `extra_kwargs` option. -The `read_only_fields` and `write_only_fields` options have been removed and replaced with a more generic `extra_kwargs`. +The `read_only_fields` and `write_only_fields` options on `ModelSerializer` have been removed and replaced with a more generic `extra_kwargs`.      class MySerializer(serializer.ModelSerializer):          class Meta: @@ -177,7 +204,7 @@ Alternatively, specify the field explicitly on the serializer class:  #### Fields for model methods and properties. -You can now specify field names in the `fields` option that refer to model methods or properties. For example, suppose you have the following model: +With `ModelSerilizer` you can now specify field names in the `fields` option that refer to model methods or properties. For example, suppose you have the following model:      class Invitation(models.Model):          created = models.DateTimeField()  | 
