From 656897c2da5f050b6282cbdb1fca765cc69d11bd Mon Sep 17 00:00:00 2001 From: David Sanders Date: Tue, 11 Jun 2013 16:09:32 -0600 Subject: [PATCH 1/2] Update ModelField to work with a broader range of fields Add support for fields that use min and max value validators. --- rest_framework/fields.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 32e4c4ae4..d9f61b280 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -339,6 +339,10 @@ class ModelField(WritableField): getattr(self.model_field, 'min_length', None)) self.max_length = kwargs.pop('max_length', getattr(self.model_field, 'max_length', None)) + self.min_value = kwargs.pop('min_value', + getattr(self.model_field, 'min_value', None)) + self.max_value = kwargs.pop('max_value', + getattr(self.model_field, 'max_value', None)) super(ModelField, self).__init__(*args, **kwargs) @@ -346,6 +350,10 @@ class ModelField(WritableField): self.validators.append(validators.MinLengthValidator(self.min_length)) if self.max_length is not None: self.validators.append(validators.MaxLengthValidator(self.max_length)) + if self.min_value is not None: + self.validators.append(validators.MinValueValidator(self.min_value)) + if self.max_value is not None: + self.validators.append(validators.MaxValueValidator(self.max_value)) def from_native(self, value): rel = getattr(self.model_field, "rel", None) From fcaca737097f42168980426a25ec9a9616268d08 Mon Sep 17 00:00:00 2001 From: David Sanders Date: Tue, 11 Jun 2013 16:10:25 -0600 Subject: [PATCH 2/2] Pep8 lint --- rest_framework/fields.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index d9f61b280..35848b4ce 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -336,13 +336,13 @@ class ModelField(WritableField): raise ValueError("ModelField requires 'model_field' kwarg") self.min_length = kwargs.pop('min_length', - getattr(self.model_field, 'min_length', None)) + getattr(self.model_field, 'min_length', None)) self.max_length = kwargs.pop('max_length', - getattr(self.model_field, 'max_length', None)) + getattr(self.model_field, 'max_length', None)) self.min_value = kwargs.pop('min_value', - getattr(self.model_field, 'min_value', None)) + getattr(self.model_field, 'min_value', None)) self.max_value = kwargs.pop('max_value', - getattr(self.model_field, 'max_value', None)) + getattr(self.model_field, 'max_value', None)) super(ModelField, self).__init__(*args, **kwargs)