aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-01-12 09:43:07 +0000
committerTom Christie2013-01-12 09:43:14 +0000
commitd9acec3e6dd07d33f416646bc161108ea52842d6 (patch)
treee8d9ec9712c35621b780d7452bb27f7029425800 /rest_framework/tests/fields.py
parent73c4e5c4603e24ec1ea9976a3c6152a797f8f041 (diff)
downloaddjango-rest-framework-d9acec3e6dd07d33f416646bc161108ea52842d6.tar.bz2
PK fields should only be read-only if they are an AutoField. Fixes #563
Diffstat (limited to 'rest_framework/tests/fields.py')
-rw-r--r--rest_framework/tests/fields.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py
index b1a8161a..a6a05941 100644
--- a/rest_framework/tests/fields.py
+++ b/rest_framework/tests/fields.py
@@ -12,11 +12,20 @@ class TimestampedModel(models.Model):
updated = models.DateTimeField(auto_now=True)
+class CharPrimaryKeyModel(models.Model):
+ id = models.CharField(max_length=20, primary_key=True)
+
+
class TimestampedModelSerializer(serializers.ModelSerializer):
class Meta:
model = TimestampedModel
+class CharPrimaryKeyModelSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = CharPrimaryKeyModel
+
+
class ReadOnlyFieldTests(TestCase):
def test_auto_now_fields_read_only(self):
"""
@@ -24,3 +33,11 @@ class ReadOnlyFieldTests(TestCase):
"""
serializer = TimestampedModelSerializer()
self.assertEquals(serializer.fields['added'].read_only, True)
+
+ def test_auto_pk_fields_read_only(self):
+ serializer = TimestampedModelSerializer()
+ self.assertEquals(serializer.fields['id'].read_only, True)
+
+ def test_non_auto_pk_fields_not_read_only(self):
+ serializer = CharPrimaryKeyModelSerializer()
+ self.assertEquals(serializer.fields['id'].read_only, False)