diff options
| author | Tom Christie | 2013-01-12 09:43:07 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-01-12 09:43:14 +0000 |
| commit | d9acec3e6dd07d33f416646bc161108ea52842d6 (patch) | |
| tree | e8d9ec9712c35621b780d7452bb27f7029425800 /rest_framework/serializers.py | |
| parent | 73c4e5c4603e24ec1ea9976a3c6152a797f8f041 (diff) | |
| download | django-rest-framework-d9acec3e6dd07d33f416646bc161108ea52842d6.tar.bz2 | |
PK fields should only be read-only if they are an AutoField. Fixes #563
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 0bacacda..27458f96 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -415,7 +415,7 @@ class ModelSerializer(Serializer): """ Returns a default instance of the pk field. """ - return Field() + return self.get_field(model_field) def get_nested_field(self, model_field): """ @@ -452,7 +452,7 @@ class ModelSerializer(Serializer): if model_field.null or model_field.blank: kwargs['required'] = False - if not model_field.editable: + if isinstance(model_field, models.AutoField) or not model_field.editable: kwargs['read_only'] = True if model_field.has_default(): @@ -468,6 +468,7 @@ class ModelSerializer(Serializer): return ChoiceField(**kwargs) field_mapping = { + models.AutoField: IntegerField, models.FloatField: FloatField, models.IntegerField: IntegerField, models.PositiveIntegerField: IntegerField, |
