Commit cea907f1 by Tom Christie

Raise nicer exception if queryset not Set on writable related field. Refs: #338

parent 0047a460
...@@ -291,6 +291,9 @@ class PrimaryKeyRelatedField(RelatedField): ...@@ -291,6 +291,9 @@ class PrimaryKeyRelatedField(RelatedField):
return pk return pk
def from_native(self, data): def from_native(self, data):
if self.queryset is None:
raise Exception('Writable related fields must include a `queryset` argument')
try: try:
return self.queryset.get(pk=data) return self.queryset.get(pk=data)
except ObjectDoesNotExist: except ObjectDoesNotExist:
...@@ -374,6 +377,8 @@ class HyperlinkedRelatedField(RelatedField): ...@@ -374,6 +377,8 @@ class HyperlinkedRelatedField(RelatedField):
def from_native(self, value): def from_native(self, value):
# Convert URL -> model instance pk # Convert URL -> model instance pk
# TODO: Use values_list # TODO: Use values_list
if self.queryset is None:
raise Exception('Writable related fields must include a `queryset` argument')
if value.startswith('http:') or value.startswith('https:'): if value.startswith('http:') or value.startswith('https:'):
# If needed convert absolute URLs to relative path # If needed convert absolute URLs to relative path
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment