aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-10-10 17:33:39 +0100
committerTom Christie2013-10-10 17:33:39 +0100
commitc3e370b168de03b963b6afcffce6bd52e1d4ab7c (patch)
tree112a90214d1f6cac4490ab42c4a80178e28aaaa7 /rest_framework/fields.py
parentafc9e9e03868634c548178e6730a0f9964f398c0 (diff)
parent9e29c6389529210978d58cee78e437b901f9daa2 (diff)
downloaddjango-rest-framework-c3e370b168de03b963b6afcffce6bd52e1d4ab7c.tar.bz2
Merge branch 'html-form-rendering'
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.'),