diff options
| author | Michael Shepanski | 2012-11-04 12:31:37 -0500 |
|---|---|---|
| committer | Michael Shepanski | 2012-11-04 12:31:37 -0500 |
| commit | 3d0f8b792ffcd85702f917de59cf51d21c9f6b43 (patch) | |
| tree | 30eecdbcbd807b3de39fe12bf3ac044b65503dfc /rest_framework/renderers.py | |
| parent | 3e0319389a4e7714e0658bd38cb1e9fb01cf662d (diff) | |
| download | django-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.py | 6 |
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): |
