diff options
| author | Tom Christie | 2012-11-01 23:04:13 +0000 |
|---|---|---|
| committer | Tom Christie | 2012-11-01 23:04:13 +0000 |
| commit | d327c5f531b341ad980d20454211b02b87f34d0e (patch) | |
| tree | a12f9fd53c73f7e9b4dd06785e3d357259e0a678 /rest_framework/renderers.py | |
| parent | 027c9079f62322fe933bdfd4438f23cf4848e3cc (diff) | |
| download | django-rest-framework-d327c5f531b341ad980d20454211b02b87f34d0e.tar.bz2 | |
Relational field support in browseable API.
Add slug relational fields.
Add quickstart.
Diffstat (limited to 'rest_framework/renderers.py')
| -rw-r--r-- | rest_framework/renderers.py | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 8dff0c77..63578b14 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -282,10 +282,12 @@ class BrowsableAPIRenderer(BaseRenderer): serializers.EmailField: forms.EmailField, serializers.CharField: forms.CharField, serializers.BooleanField: forms.BooleanField, - serializers.PrimaryKeyRelatedField: forms.ModelChoiceField, - serializers.ManyPrimaryKeyRelatedField: forms.ModelMultipleChoiceField, - serializers.HyperlinkedRelatedField: forms.ModelChoiceField, - serializers.ManyHyperlinkedRelatedField: forms.ModelMultipleChoiceField + serializers.PrimaryKeyRelatedField: forms.ChoiceField, + serializers.ManyPrimaryKeyRelatedField: forms.MultipleChoiceField, + serializers.SlugRelatedField: forms.ChoiceField, + serializers.ManySlugRelatedField: forms.MultipleChoiceField, + serializers.HyperlinkedRelatedField: forms.ChoiceField, + serializers.ManyHyperlinkedRelatedField: forms.MultipleChoiceField } fields = {} @@ -296,19 +298,14 @@ class BrowsableAPIRenderer(BaseRenderer): kwargs = {} kwargs['required'] = v.required - if getattr(v, 'queryset', None): - kwargs['queryset'] = v.queryset + #if getattr(v, 'queryset', None): + # kwargs['queryset'] = v.queryset + + if getattr(v, 'choices', None) is not None: + kwargs['choices'] = v.choices if getattr(v, 'widget', None): widget = copy.deepcopy(v.widget) - # If choices have friendly readable names, - # then add in the identities too - if getattr(widget, 'choices', None): - choices = widget.choices - if any([ident != desc for (ident, desc) in choices]): - choices = [(ident, "%s (%s)" % (desc, ident)) - for (ident, desc) in choices] - widget.choices = choices kwargs['widget'] = widget if getattr(v, 'default', None) is not None: |
