aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorLudwig Kraatz2012-11-08 16:02:03 +0100
committerLudwig Kraatz2012-11-08 16:02:03 +0100
commit5cd64cc551c8c519bc9797ebf4336bd8c6128250 (patch)
tree83ba92436bb2a09c85751fd84acfd5de27a7c81b /rest_framework/renderers.py
parent607cf823313d4a3bdb0da4caddf19739a5f133b2 (diff)
downloaddjango-rest-framework-5cd64cc551c8c519bc9797ebf4336bd8c6128250.tar.bz2
Fields specify what FormFieldClass should be used by BrowsableApiRenderer
added SerializerField Attribute "form_field_class" and defaults for existing Fields
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py24
1 files changed, 1 insertions, 23 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 748c1512..4f3aa02c 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -258,22 +258,6 @@ class BrowsableAPIRenderer(BaseRenderer):
media_type = 'text/html'
format = 'api'
template = 'rest_framework/api.html'
- field_mapping = {
- serializers.FloatField: forms.FloatField,
- serializers.IntegerField: forms.IntegerField,
- serializers.DateTimeField: forms.DateTimeField,
- serializers.DateField: forms.DateField,
- serializers.EmailField: forms.EmailField,
- serializers.CharField: forms.CharField,
- serializers.ChoiceField: forms.ChoiceField,
- serializers.BooleanField: forms.BooleanField,
- serializers.PrimaryKeyRelatedField: forms.ChoiceField,
- serializers.ManyPrimaryKeyRelatedField: forms.MultipleChoiceField,
- serializers.SlugRelatedField: forms.ChoiceField,
- serializers.ManySlugRelatedField: forms.MultipleChoiceField,
- serializers.HyperlinkedRelatedField: forms.ChoiceField,
- serializers.ManyHyperlinkedRelatedField: forms.MultipleChoiceField
- }
def get_default_renderer(self, view):
"""
@@ -346,13 +330,7 @@ class BrowsableAPIRenderer(BaseRenderer):
kwargs['label'] = k
- try:
- fields[k] = self.field_mapping[v.__class__](**kwargs)
- except KeyError:
- if getattr(v, 'choices', None) is not None:
- fields[k] = forms.ChoiceField(**kwargs)
- else:
- fields[k] = forms.CharField(**kwargs)
+ fields[k] = v.form_field_class(**kwargs)
return fields
def get_form(self, view, method, request):