aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorTom Christie2014-09-26 12:17:20 +0100
committerTom Christie2014-09-26 12:17:20 +0100
commite8af73d144d73a55aecde6a1fda8516f15f027c1 (patch)
tree723544dda7f8517970ffb3c6ba6658f25049c44b /docs
parent43e80c74b225e17edfe8a90da893823bf50b946f (diff)
downloaddjango-rest-framework-e8af73d144d73a55aecde6a1fda8516f15f027c1.tar.bz2
Release notes
Diffstat (limited to 'docs')
-rw-r--r--docs/topics/3.0-announcement.md35
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()