diff options
| author | Tom Christie | 2012-10-26 12:45:52 +0100 |
|---|---|---|
| committer | Tom Christie | 2012-10-26 12:45:52 +0100 |
| commit | 32d602880fc88e2b3e8d8f2a82132bed224f8b49 (patch) | |
| tree | 207e3713c53c5a53fe00d3d1a84414c4edee4323 /rest_framework | |
| parent | 365d20652eb7b56c9d1d4b63b52c056f03cab514 (diff) | |
| download | django-rest-framework-32d602880fc88e2b3e8d8f2a82132bed224f8b49.tar.bz2 | |
Choice fields from ModelSerializer.
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/serializers.py | 10 |
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, |
