diff options
| author | Tom Christie | 2012-11-02 20:53:33 +0000 |
|---|---|---|
| committer | Tom Christie | 2012-11-02 20:53:33 +0000 |
| commit | 6eaec7a0eccabb3e1b010d07633632e8a3ecd86f (patch) | |
| tree | 57ea5143abd2d0ce5cc5ab12f00ab7accbfc980a /rest_framework/fields.py | |
| parent | e84ce60a0da77c0e07e0d6e5f627694ae3f4422f (diff) | |
| download | django-rest-framework-6eaec7a0eccabb3e1b010d07633632e8a3ecd86f.tar.bz2 | |
foreign key tests
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 13 |
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 |
