aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2012-11-09 09:04:45 -0800
committerTom Christie2012-11-09 09:04:45 -0800
commitda1aa5542cff3295d3a53821d4afe02911094181 (patch)
treed40beff70dbc341d0a0b1bc38636a912276d2899 /rest_framework/serializers.py
parentb1b284cdbc7732b8825565cf70f8cc56f56971fc (diff)
parente224061189a6a5ea2c063f3820239eed6c3a88fb (diff)
downloaddjango-rest-framework-da1aa5542cff3295d3a53821d4afe02911094181.tar.bz2
Merge pull request #394 from tomchristie/read_only_fields
Read only fields
Diffstat (limited to 'rest_framework/serializers.py')
-rw-r--r--rest_framework/serializers.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 95145d58..329b38f2 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -321,6 +321,7 @@ class ModelSerializerOptions(SerializerOptions):
def __init__(self, meta):
super(ModelSerializerOptions, self).__init__(meta)
self.model = getattr(meta, 'model', None)
+ self.read_only_fields = getattr(meta, 'read_only_fields', ())
class ModelSerializer(Serializer):
@@ -369,6 +370,12 @@ class ModelSerializer(Serializer):
field.initialize(parent=self, field_name=model_field.name)
ret[model_field.name] = field
+ for field_name in self.opts.read_only_fields:
+ assert field_name in ret, \
+ "read_only_fields on '%s' included invalid item '%s'" % \
+ (self.__class__.__name__, field_name)
+ ret[field_name].read_only = True
+
return ret
def get_pk_field(self, model_field):