aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2012-10-02 16:16:49 +0100
committerTom Christie2012-10-02 16:16:49 +0100
commitd1b99f350aded62fe480f7dc4749cd63d52715d2 (patch)
treef3dc4c17bd2f307c587ca0691f485c46aeeae589 /rest_framework/serializers.py
parentf010a9553ec7ab1645c2bae4c959a19bb5117a21 (diff)
downloaddjango-rest-framework-d1b99f350aded62fe480f7dc4749cd63d52715d2.tar.bz2
Added model form field -> serializer form field mapping
Diffstat (limited to 'rest_framework/serializers.py')
-rw-r--r--rest_framework/serializers.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index d0d34094..a2f211ab 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.core.serializers.base import DeserializedObject
+from django.db import models
from django.utils.datastructures import SortedDict
from rest_framework.compat import get_concrete_model
from rest_framework.fields import *
@@ -349,7 +350,20 @@ class ModelSerializer(RelatedField, Serializer):
"""
Creates a default instance of a basic non-relational field.
"""
- return Field()
+ field_mapping = dict([
+ [models.FloatField, FloatField],
+ [models.IntegerField, IntegerField],
+ [models.DateTimeField, DateTimeField],
+ [models.DateField, DateField],
+ [models.EmailField, EmailField],
+ [models.CharField, CharField],
+ [models.CommaSeparatedIntegerField, CharField],
+ [models.BooleanField, BooleanField]
+ ])
+ try:
+ return field_mapping[model_field.__class__]()
+ except KeyError:
+ return Field()
def restore_object(self, attrs, instance=None):
"""