aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2012-10-26 12:45:52 +0100
committerTom Christie2012-10-26 12:45:52 +0100
commit32d602880fc88e2b3e8d8f2a82132bed224f8b49 (patch)
tree207e3713c53c5a53fe00d3d1a84414c4edee4323 /rest_framework
parent365d20652eb7b56c9d1d4b63b52c056f03cab514 (diff)
downloaddjango-rest-framework-32d602880fc88e2b3e8d8f2a82132bed224f8b49.tar.bz2
Choice fields from ModelSerializer.
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/serializers.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 8ee9a0ec..d4fcddd5 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -3,6 +3,7 @@ import datetime
import types
from decimal import Decimal
from django.db import models
+from django.forms import widgets
from django.utils.datastructures import SortedDict
from rest_framework.compat import get_concrete_model
from rest_framework.fields import *
@@ -409,6 +410,15 @@ class ModelSerializer(Serializer):
kwargs = {}
if model_field.has_default():
kwargs['required'] = False
+ kwargs['default'] = model_field.default
+
+ if model_field.__class__ == models.TextField:
+ kwargs['widget'] = widgets.Textarea
+
+ # TODO: TypedChoiceField?
+ if model_field.flatchoices: # This ModelField contains choices
+ kwargs['choices'] = model_field.flatchoices
+ return ChoiceField(**kwargs)
field_mapping = {
models.FloatField: FloatField,