diff options
| author | Tom Christie | 2012-11-02 14:08:49 -0700 |
|---|---|---|
| committer | Tom Christie | 2012-11-02 14:08:49 -0700 |
| commit | b468dd6271d95791cc05d5213042f1801145609f (patch) | |
| tree | 06bf74cf4b4a9651c1a03b2f7b92ac4b9a5e1ef7 /rest_framework/fields.py | |
| parent | dafbbdc5bf781267a824f740791d5e585e4d93d9 (diff) | |
| parent | 8ec54e6a9fe8e46955098ca8e7d728d8bb4f7053 (diff) | |
| download | django-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.py | 15 |
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 |
