aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 838aa3b0..d18551b3 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -1,3 +1,4 @@
+from rest_framework.exceptions import ValidationError
from rest_framework.utils import html
import inspect
@@ -59,10 +60,6 @@ def set_value(dictionary, keys, value):
dictionary[keys[-1]] = value
-class ValidationError(Exception):
- pass
-
-
class SkipField(Exception):
pass
@@ -204,6 +201,22 @@ class Field(object):
msg = self._MISSING_ERROR_MESSAGE.format(class_name=class_name, key=key)
raise AssertionError(msg)
+ def __new__(cls, *args, **kwargs):
+ instance = super(Field, cls).__new__(cls)
+ instance._args = args
+ instance._kwargs = kwargs
+ return instance
+
+ def __repr__(self):
+ arg_string = ', '.join([repr(val) for val in self._args])
+ kwarg_string = ', '.join([
+ '%s=%s' % (key, repr(val)) for key, val in self._kwargs.items()
+ ])
+ if arg_string and kwarg_string:
+ arg_string += ', '
+ class_name = self.__class__.__name__
+ return "%s(%s%s)" % (class_name, arg_string, kwarg_string)
+
class BooleanField(Field):
MESSAGES = {
@@ -308,6 +321,11 @@ class IntegerField(Field):
'invalid_integer': 'A valid integer is required.'
}
+ def __init__(self, **kwargs):
+ self.max_value = kwargs.pop('max_value')
+ self.min_value = kwargs.pop('min_value')
+ super(CharField, self).__init__(**kwargs)
+
def to_native(self, data):
try:
data = int(str(data))