Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
5670cb03
Commit
5670cb03
authored
Oct 30, 2012
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow use of absolute URLs when deserializing hyperlinked fields
parent
1b6fe9ab
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
2 deletions
+11
-2
rest_framework/fields.py
+10
-1
rest_framework/tests/hyperlinkedserializers.py
+1
-1
No files found.
rest_framework/fields.py
View file @
5670cb03
...
...
@@ -5,7 +5,7 @@ import warnings
from
django.core
import
validators
from
django.core.exceptions
import
ObjectDoesNotExist
,
ValidationError
from
django.core.urlresolvers
import
resolve
from
django.core.urlresolvers
import
resolve
,
get_script_prefix
from
django.conf
import
settings
from
django.forms
import
widgets
from
django.utils.encoding
import
is_protected_type
,
smart_unicode
...
...
@@ -13,6 +13,7 @@ from django.utils.translation import ugettext_lazy as _
from
rest_framework.reverse
import
reverse
from
rest_framework.compat
import
parse_date
,
parse_datetime
from
rest_framework.compat
import
timezone
from
urlparse
import
urlparse
def
is_simple_callable
(
obj
):
...
...
@@ -372,6 +373,14 @@ class HyperlinkedRelatedField(RelatedField):
def
from_native
(
self
,
value
):
# Convert URL -> model instance pk
# TODO: Use values_list
if
value
.
startswith
(
'http:'
)
or
value
.
startswith
(
'https:'
):
# If needed convert absolute URLs to relative path
value
=
urlparse
(
value
)
.
path
prefix
=
get_script_prefix
()
if
value
.
startswith
(
prefix
):
value
=
'/'
+
value
[
len
(
prefix
):]
try
:
match
=
resolve
(
value
)
except
:
...
...
rest_framework/tests/hyperlinkedserializers.py
View file @
5670cb03
...
...
@@ -158,7 +158,7 @@ class TestCreateWithForeignKeys(TestCase):
data
=
{
'text'
:
'A test comment'
,
'blog_post_url'
:
'/posts/1/'
'blog_post_url'
:
'
http://testserver
/posts/1/'
}
request
=
factory
.
post
(
'/comments/'
,
data
=
data
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment