aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/topics/3.0-announcement.md6
-rw-r--r--rest_framework/serializers.py2
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)