Fix for bug #363: ChoiceField missing in renderers.py

This commit is contained in:
Michael Shepanski 2012-11-04 12:31:37 -05:00
parent 3e0319389a
commit 3d0f8b792f

View File

@ -281,6 +281,7 @@ class BrowsableAPIRenderer(BaseRenderer):
serializers.DateField: forms.DateField, serializers.DateField: forms.DateField,
serializers.EmailField: forms.EmailField, serializers.EmailField: forms.EmailField,
serializers.CharField: forms.CharField, serializers.CharField: forms.CharField,
serializers.ChoiceField: forms.ChoiceField,
serializers.BooleanField: forms.BooleanField, serializers.BooleanField: forms.BooleanField,
serializers.PrimaryKeyRelatedField: forms.ChoiceField, serializers.PrimaryKeyRelatedField: forms.ChoiceField,
serializers.ManyPrimaryKeyRelatedField: forms.MultipleChoiceField, serializers.ManyPrimaryKeyRelatedField: forms.MultipleChoiceField,
@ -316,7 +317,10 @@ class BrowsableAPIRenderer(BaseRenderer):
try: try:
fields[k] = field_mapping[v.__class__](**kwargs) fields[k] = field_mapping[v.__class__](**kwargs)
except KeyError: 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 return fields
def get_form(self, view, method, request): def get_form(self, view, method, request):