aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorMichael Shepanski2012-11-04 12:31:37 -0500
committerMichael Shepanski2012-11-04 12:31:37 -0500
commit3d0f8b792ffcd85702f917de59cf51d21c9f6b43 (patch)
tree30eecdbcbd807b3de39fe12bf3ac044b65503dfc /rest_framework/renderers.py
parent3e0319389a4e7714e0658bd38cb1e9fb01cf662d (diff)
downloaddjango-rest-framework-3d0f8b792ffcd85702f917de59cf51d21c9f6b43.tar.bz2
Fix for bug #363: ChoiceField missing in renderers.py
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 73ae6edc..0a659bd1 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -281,6 +281,7 @@ class BrowsableAPIRenderer(BaseRenderer):
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,
@@ -316,7 +317,10 @@ class BrowsableAPIRenderer(BaseRenderer):
try:
fields[k] = field_mapping[v.__class__](**kwargs)
except KeyError:
- fields[k] = forms.CharField(**kwargs)
+ if getattr(v, 'choices', None) is not None:
+ fields[k] = forms.ChoiceField(**kwargs)
+ else:
+ fields[k] = forms.CharField(**kwargs)
return fields
def get_form(self, view, method, request):