This commit is contained in:
Henry Clifford 2013-06-06 00:59:22 -07:00
commit a72f37bb20

View File

@ -546,6 +546,7 @@ class ModelSerializerOptions(SerializerOptions):
super(ModelSerializerOptions, self).__init__(meta)
self.model = getattr(meta, 'model', None)
self.read_only_fields = getattr(meta, 'read_only_fields', ())
self.property_fields = getattr(meta, 'property_fields', ())
class ModelSerializer(Serializer):
@ -693,6 +694,10 @@ class ModelSerializer(Serializer):
(self.__class__.__name__, field_name)
ret[field_name].read_only = True
# For each of the `property_fields` construct a field
for property_name in self.opts.property_fields:
ret[property_name] = self.get_property_field(property_name)
return ret
def get_pk_field(self, model_field):
@ -733,6 +738,9 @@ class ModelSerializer(Serializer):
return PrimaryKeyRelatedField(**kwargs)
def get_property_field(self, model_property):
return CharField(read_only=True, source=model_property)
def get_field(self, model_field):
"""
Creates a default instance of a basic non-relational field.