diff options
| -rw-r--r-- | docs/topics/3.0-announcement.md | 6 | ||||
| -rw-r--r-- | rest_framework/serializers.py | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/docs/topics/3.0-announcement.md b/docs/topics/3.0-announcement.md index b28670cf..aa0e0c7e 100644 --- a/docs/topics/3.0-announcement.md +++ b/docs/topics/3.0-announcement.md @@ -144,6 +144,12 @@ The corresponding code would now look like this: logging.info('Creating ticket "%s"' % name) serializer.save(user=request.user) # Include the user when saving. +#### Use `rest_framework.exceptions.ValidationFailed`. + +Django's `ValidationError` class is intended for use with HTML forms and it's API makes its use slightly awkward with nested validation errors as can occur in serializers. + +We now include a simpler `ValidationFailed` exception class in REST framework that you should use when raising validation failures. + #### Change to `validate_<field_name>`. The `validate_<field_name>` method hooks that can be attached to serializer classes change their signature slightly and return type. Previously these would take a dictionary of all incoming data, and a key representing the field name, and would return a dictionary including the validated data for that field: diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 2f683562..0f6cf2bc 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -555,7 +555,7 @@ class ModelSerializer(Serializer): depth = getattr(self.Meta, 'depth', 0) extra_kwargs = getattr(self.Meta, 'extra_kwargs', {}) - assert not fields and exclude, "Cannot set both 'fields' and 'exclude'." + assert not (fields and exclude), "Cannot set both 'fields' and 'exclude'." extra_kwargs = self._include_additional_options(extra_kwargs) |
