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
22e1950e
Commit
22e1950e
authored
May 28, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backwards compatible approach to HyperlinkedIdentityField URLs. Closes #892
parent
138f0cac
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
9 deletions
+10
-9
rest_framework/relations.py
+10
-9
No files found.
rest_framework/relations.py
View file @
22e1950e
...
@@ -518,8 +518,6 @@ class HyperlinkedIdentityField(Field):
...
@@ -518,8 +518,6 @@ class HyperlinkedIdentityField(Field):
request
=
self
.
context
.
get
(
'request'
,
None
)
request
=
self
.
context
.
get
(
'request'
,
None
)
format
=
self
.
context
.
get
(
'format'
,
None
)
format
=
self
.
context
.
get
(
'format'
,
None
)
view_name
=
self
.
view_name
or
self
.
parent
.
opts
.
view_name
view_name
=
self
.
view_name
or
self
.
parent
.
opts
.
view_name
lookup_field
=
getattr
(
obj
,
self
.
lookup_field
)
kwargs
=
{
self
.
lookup_field
:
lookup_field
}
if
request
is
None
:
if
request
is
None
:
warnings
.
warn
(
"Using `HyperlinkedIdentityField` without including the "
warnings
.
warn
(
"Using `HyperlinkedIdentityField` without including the "
...
@@ -539,23 +537,26 @@ class HyperlinkedIdentityField(Field):
...
@@ -539,23 +537,26 @@ class HyperlinkedIdentityField(Field):
if
format
and
self
.
format
and
self
.
format
!=
format
:
if
format
and
self
.
format
and
self
.
format
!=
format
:
format
=
self
.
format
format
=
self
.
format
lookup_field
=
getattr
(
obj
,
self
.
lookup_field
)
kwargs
=
{
self
.
lookup_field
:
lookup_field
}
try
:
try
:
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
except
NoReverseMatch
:
except
NoReverseMatch
:
pass
pass
slug
=
getattr
(
obj
,
self
.
slug_field
,
None
)
if
self
.
pk_url_kwarg
!=
'pk'
:
# Only try pk lookup if it has been explicitly set.
if
not
slug
:
# Otherwise, the default `lookup_field = 'pk'` has us covered.
raise
Exception
(
'Could not resolve URL for field using view name "
%
s"'
%
view_name
)
kwargs
=
{
self
.
pk_url_kwarg
:
obj
.
pk
}
kwargs
=
{
self
.
slug_url_kwarg
:
slug
}
try
:
try
:
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
except
NoReverseMatch
:
except
NoReverseMatch
:
pass
pass
kwargs
=
{
self
.
pk_url_kwarg
:
obj
.
pk
,
self
.
slug_url_kwarg
:
slug
}
slug
=
getattr
(
obj
,
self
.
slug_field
,
None
)
if
slug
:
# Only use slug lookup if a slug field exists on the model
kwargs
=
{
self
.
slug_url_kwarg
:
slug
}
try
:
try
:
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
return
reverse
(
view_name
,
kwargs
=
kwargs
,
request
=
request
,
format
=
format
)
except
NoReverseMatch
:
except
NoReverseMatch
:
...
...
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