From 6d55dcc4a3c09e6f8d1ad21a07e10bd7d6283520 Mon Sep 17 00:00:00 2001 From: kosz85 Date: Mon, 26 May 2014 10:19:15 +0200 Subject: [PATCH 1/2] Meta.error_messages argument This way you can pass error_messages to model fields like in django 1.6 model forms --- rest_framework/serializers.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index c2b414d7a..340515df6 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -624,7 +624,7 @@ class ModelSerializerOptions(SerializerOptions): self.model = getattr(meta, 'model', None) self.read_only_fields = getattr(meta, 'read_only_fields', ()) self.write_only_fields = getattr(meta, 'write_only_fields', ()) - + self.error_messages = getattr(meta, 'error_messages', {}) class ModelSerializer(Serializer): """ @@ -842,6 +842,9 @@ class ModelSerializer(Serializer): if model_field.help_text is not None: kwargs['help_text'] = model_field.help_text + + if model_field.name in self.opts.error_messages: + kwargs['error_messages'] = self.opts.error_messages[model_field.name] return PrimaryKeyRelatedField(**kwargs) @@ -868,6 +871,9 @@ class ModelSerializer(Serializer): if model_field.help_text is not None: kwargs['help_text'] = model_field.help_text + + if model_field.name in self.opts.error_messages: + kwargs['error_messages'] = self.opts.error_messages[model_field.name] # TODO: TypedChoiceField? if model_field.flatchoices: # This ModelField contains choices From bf9da13d9e8be8f89d8a895415ed9a0ded22d7e8 Mon Sep 17 00:00:00 2001 From: kosz85 Date: Mon, 26 May 2014 10:20:41 +0200 Subject: [PATCH 2/2] pep8 fix --- rest_framework/serializers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 340515df6..c68f45050 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -626,6 +626,7 @@ class ModelSerializerOptions(SerializerOptions): self.write_only_fields = getattr(meta, 'write_only_fields', ()) self.error_messages = getattr(meta, 'error_messages', {}) + class ModelSerializer(Serializer): """ A serializer that deals with model instances and querysets.