aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorMarko Tibold2012-11-29 01:10:32 +0100
committerMarko Tibold2012-11-29 01:10:32 +0100
commit968f4a5ca40d8e85ff6a77e9263e0563285abe8f (patch)
treecae5a35c4c5cacabb5274ebce94a8b55318eea27 /rest_framework/renderers.py
parent60def44ee2ae803e23f7e440a6855c6883c1a882 (diff)
parent5cd64cc551c8c519bc9797ebf4336bd8c6128250 (diff)
downloaddjango-rest-framework-968f4a5ca40d8e85ff6a77e9263e0563285abe8f.tar.bz2
Merge branch 'custom-serializer-form-class' of https://github.com/ludwigkraatz/django-rest-framework into mergebranch#390
Conflicts: rest_framework/fields.py rest_framework/renderers.py Manually solved
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py28
1 files changed, 1 insertions, 27 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 550963cb..25a32baa 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -306,26 +306,6 @@ class BrowsableAPIRenderer(BaseRenderer):
return True
def serializer_to_form_fields(self, serializer):
- field_mapping = {
- serializers.FloatField: forms.FloatField,
- serializers.IntegerField: forms.IntegerField,
- serializers.DateTimeField: forms.DateTimeField,
- serializers.DateField: forms.DateField,
- serializers.EmailField: forms.EmailField,
- serializers.RegexField: forms.RegexField,
- 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,
- serializers.FileField: forms.FileField,
- serializers.ImageField: forms.ImageField,
- }
-
fields = {}
for k, v in serializer.get_fields().items():
if getattr(v, 'read_only', True):
@@ -349,13 +329,7 @@ class BrowsableAPIRenderer(BaseRenderer):
kwargs['label'] = k
- try:
- fields[k] = 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):