aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2012-11-02 20:53:33 +0000
committerTom Christie2012-11-02 20:53:33 +0000
commit6eaec7a0eccabb3e1b010d07633632e8a3ecd86f (patch)
tree57ea5143abd2d0ce5cc5ab12f00ab7accbfc980a /rest_framework/fields.py
parente84ce60a0da77c0e07e0d6e5f627694ae3f4422f (diff)
downloaddjango-rest-framework-6eaec7a0eccabb3e1b010d07633632e8a3ecd86f.tar.bz2
foreign key tests
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 375d7a46..965e22c4 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -383,7 +383,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:
@@ -430,6 +431,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