aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2012-11-02 14:08:49 -0700
committerTom Christie2012-11-02 14:08:49 -0700
commitb468dd6271d95791cc05d5213042f1801145609f (patch)
tree06bf74cf4b4a9651c1a03b2f7b92ac4b9a5e1ef7 /rest_framework/fields.py
parentdafbbdc5bf781267a824f740791d5e585e4d93d9 (diff)
parent8ec54e6a9fe8e46955098ca8e7d728d8bb4f7053 (diff)
downloaddjango-rest-framework-b468dd6271d95791cc05d5213042f1801145609f.tar.bz2
Merge pull request #359 from tomchristie/relationship_tests
Relationship tests
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 515ccbcf..5b28463c 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -346,7 +346,7 @@ class ManyRelatedField(ManyRelatedMixin, RelatedField):
"""
Base class for related model managers.
- If not overridden, this represents a to-many relatinship, using the unicode
+ If not overridden, this represents a to-many relationship, using the unicode
representations of the target, and is read-only.
"""
pass
@@ -385,7 +385,8 @@ class PrimaryKeyRelatedField(RelatedField):
try:
return self.queryset.get(pk=data)
except ObjectDoesNotExist:
- raise ValidationError('Invalid hyperlink - object does not exist.')
+ msg = "Invalid pk '%s' - object does not exist." % smart_unicode(data)
+ raise ValidationError(msg)
def field_to_native(self, obj, field_name):
try:
@@ -432,6 +433,16 @@ class ManyPrimaryKeyRelatedField(ManyRelatedField):
# Forward relationship
return [self.to_native(item.pk) for item in queryset.all()]
+ def from_native(self, data):
+ if self.queryset is None:
+ raise Exception('Writable related fields must include a `queryset` argument')
+
+ try:
+ return self.queryset.get(pk=data)
+ except ObjectDoesNotExist:
+ msg = "Invalid pk '%s' - object does not exist." % smart_unicode(data)
+ raise ValidationError(msg)
+
### Slug relationships