From fac579342d6fff9537ed87690ae920a10000796a Mon Sep 17 00:00:00 2001 From: Jarrod Baumann Date: Tue, 4 Nov 2014 17:27:03 -0600 Subject: [PATCH] Accomodate passing the full resource object to HyperlinkedRelatedFields instead of just the URL --- rest_framework/relations.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 1665dd35e..ff768c2c2 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -2,6 +2,7 @@ from rest_framework.compat import smart_text, urlparse from rest_framework.fields import get_attribute, empty, Field from rest_framework.reverse import reverse from rest_framework.utils import html +from rest_framework.settings import api_settings from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured from django.core.urlresolvers import resolve, get_script_prefix, NoReverseMatch, Resolver404 from django.db.models.query import QuerySet @@ -176,6 +177,10 @@ class HyperlinkedRelatedField(RelatedField): return self.reverse(view_name, kwargs=kwargs, request=request, format=format) def to_internal_value(self, data): + if isinstance(data, dict) and api_settings.URL_FIELD_NAME in data: + # Accomodate passing the full resource instead of just the URL + data = data[api_settings.URL_FIELD_NAME] + try: http_prefix = data.startswith(('http:', 'https:')) except AttributeError: