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.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 0c3817b5..e23fc001 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -123,6 +123,7 @@ class Field(object):
use_files = False
form_field_class = forms.CharField
type_label = 'field'
+ widget = None
def __init__(self, source=None, label=None, help_text=None):
self.parent = None
@@ -134,9 +135,29 @@ class Field(object):
if label is not None:
self.label = smart_text(label)
+ else:
+ self.label = None
if help_text is not None:
self.help_text = strip_multiple_choice_msg(smart_text(help_text))
+ else:
+ self.help_text = None
+
+ self._errors = []
+ self._value = None
+ self._name = None
+
+ @property
+ def errors(self):
+ return self._errors
+
+ def widget_html(self):
+ if not self.widget:
+ return ''
+ return self.widget.render(self._name, self._value)
+
+ def label_tag(self):
+ return '<label for="%s">%s:</label>' % (self._name, self.label)
def initialize(self, parent, field_name):
"""
@@ -757,6 +778,7 @@ class IntegerField(WritableField):
type_name = 'IntegerField'
type_label = 'integer'
form_field_class = forms.IntegerField
+ empty = 0
default_error_messages = {
'invalid': _('Enter a whole number.'),
@@ -788,6 +810,7 @@ class FloatField(WritableField):
type_name = 'FloatField'
type_label = 'float'
form_field_class = forms.FloatField
+ empty = 0
default_error_messages = {
'invalid': _("'%s' value must be a float."),
@@ -808,6 +831,7 @@ class DecimalField(WritableField):
type_name = 'DecimalField'
type_label = 'decimal'
form_field_class = forms.DecimalField
+ empty = Decimal('0')
default_error_messages = {
'invalid': _('Enter a number.'),