diff options
| author | Andrew Hankinson | 2012-12-30 14:03:08 -0400 |
|---|---|---|
| committer | Andrew Hankinson | 2012-12-30 14:03:08 -0400 |
| commit | c6f212238c238561749574a54aec3b1b1fd8df61 (patch) | |
| tree | 6c235aa1f61cdbcd834bccaa2c31c4c1bb32de0e /docs/api-guide/serializers.md | |
| parent | df1880185c87733a82a41392898e67fe02c769aa (diff) | |
| parent | 33580c82b3487bdf00cbbaef409a4dd41e6750d5 (diff) | |
| download | django-rest-framework-c6f212238c238561749574a54aec3b1b1fd8df61.tar.bz2 | |
Merge branch 'master' of git://github.com/tomchristie/django-rest-framework into patch-support
Diffstat (limited to 'docs/api-guide/serializers.md')
| -rw-r--r-- | docs/api-guide/serializers.md | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index 19efde3c..d98a602f 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -4,8 +4,7 @@ > Expanding the usefulness of the serializers is something that we would like to address. However, it's not a trivial problem, and it -will take some serious design work. Any offers to help out in this -area would be gratefully accepted. +will take some serious design work. > > — Russell Keith-Magee, [Django users group][cite] @@ -110,7 +109,22 @@ Your `validate_<fieldname>` methods should either just return the `attrs` dictio ### Object-level validation -To do any other validation that requires access to multiple fields, add a method called `.validate()` to your `Serializer` subclass. This method takes a single argument, which is the `attrs` dictionary. It should raise a `ValidationError` if necessary, or just return `attrs`. +To do any other validation that requires access to multiple fields, add a method called `.validate()` to your `Serializer` subclass. This method takes a single argument, which is the `attrs` dictionary. It should raise a `ValidationError` if necessary, or just return `attrs`. For example: + + from rest_framework import serializers + + class EventSerializer(serializers.Serializer): + description = serializers.CahrField(max_length=100) + start = serializers.DateTimeField() + finish = serializers.DateTimeField() + + def validate(self, attrs): + """ + Check that the start is before the stop. + """ + if attrs['start'] < attrs['finish']: + raise serializers.ValidationError("finish must occur after start") + return attrs ## Saving object state |
