aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorTom Christie2012-10-03 16:08:20 +0100
committerTom Christie2012-10-03 16:08:20 +0100
commita366d6e61261b9050c85a76d26ccf1544f165486 (patch)
treecafa27ce0d9d85bb0e0d0dc351368c0d21c447f0 /rest_framework/renderers.py
parent09f22676013bd39d4c783956e719c2d1f87da927 (diff)
downloaddjango-rest-framework-a366d6e61261b9050c85a76d26ccf1544f165486.tar.bz2
M2M fields supported
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 9f0c26a5..96c5e170 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -246,7 +246,9 @@ class DocumentingHTMLRenderer(BaseRenderer):
serializers.DateField: forms.DateField,
serializers.EmailField: forms.EmailField,
serializers.CharField: forms.CharField,
- serializers.BooleanField: forms.BooleanField
+ serializers.BooleanField: forms.BooleanField,
+ serializers.PrimaryKeyRelatedField: forms.ChoiceField,
+ serializers.ManyPrimaryKeyRelatedField: forms.ModelMultipleChoiceField
}
# Creating an on the fly form see: http://stackoverflow.com/questions/3915024/dynamically-creating-classes-python
@@ -257,10 +259,16 @@ class DocumentingHTMLRenderer(BaseRenderer):
serializer = view.get_serializer(instance=obj)
for k, v in serializer.get_fields(True).items():
+ print k, v
if v.readonly:
continue
+
+ kwargs = {}
+ if getattr(v, 'queryset', None):
+ kwargs['queryset'] = getattr(v, 'queryset', None)
+
try:
- fields[k] = field_mapping[v.__class__]()
+ fields[k] = field_mapping[v.__class__](**kwargs)
except KeyError:
fields[k] = forms.CharField()