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
2c05faa5
Commit
2c05faa5
authored
Jan 19, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
`format_suffix_patterns` now support `include`-style nested URL patterns. Fixes #593
parent
37d49429
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
13 deletions
+31
-13
rest_framework/urlpatterns.py
+31
-13
No files found.
rest_framework/urlpatterns.py
View file @
2c05faa5
from
rest_framework.compat
import
url
from
rest_framework.compat
import
url
,
include
from
rest_framework.settings
import
api_settings
from
rest_framework.settings
import
api_settings
from
django.core.urlresolvers
import
RegexURLResolver
def
apply_suffix_patterns
(
urlpatterns
,
suffix_pattern
,
suffix_required
):
ret
=
[]
for
urlpattern
in
urlpatterns
:
if
not
isinstance
(
urlpattern
,
RegexURLResolver
):
# Regular URL pattern
# Form our complementing '.format' urlpattern
regex
=
urlpattern
.
regex
.
pattern
.
rstrip
(
'$'
)
+
suffix_pattern
view
=
urlpattern
.
_callback
or
urlpattern
.
_callback_str
kwargs
=
urlpattern
.
default_args
name
=
urlpattern
.
name
# Add in both the existing and the new urlpattern
if
not
suffix_required
:
ret
.
append
(
urlpattern
)
ret
.
append
(
url
(
regex
,
view
,
kwargs
,
name
))
else
:
# Set of included URL patterns
print
(
type
(
urlpattern
))
regex
=
urlpattern
.
regex
.
pattern
namespace
=
urlpattern
.
namespace
app_name
=
urlpattern
.
app_name
patterns
=
apply_suffix_patterns
(
urlpattern
.
url_patterns
,
suffix_pattern
,
suffix_required
)
ret
.
append
(
url
(
regex
,
include
(
patterns
,
namespace
,
app_name
)))
return
ret
def
format_suffix_patterns
(
urlpatterns
,
suffix_required
=
False
,
allowed
=
None
):
def
format_suffix_patterns
(
urlpatterns
,
suffix_required
=
False
,
allowed
=
None
):
...
@@ -28,15 +57,4 @@ def format_suffix_patterns(urlpatterns, suffix_required=False, allowed=None):
...
@@ -28,15 +57,4 @@ def format_suffix_patterns(urlpatterns, suffix_required=False, allowed=None):
else
:
else
:
suffix_pattern
=
r'\.(?P<
%
s>[a-z]+)$'
%
suffix_kwarg
suffix_pattern
=
r'\.(?P<
%
s>[a-z]+)$'
%
suffix_kwarg
ret
=
[]
return
apply_suffix_patterns
(
urlpatterns
,
suffix_pattern
,
suffix_required
)
for
urlpattern
in
urlpatterns
:
# Form our complementing '.format' urlpattern
regex
=
urlpattern
.
regex
.
pattern
.
rstrip
(
'$'
)
+
suffix_pattern
view
=
urlpattern
.
_callback
or
urlpattern
.
_callback_str
kwargs
=
urlpattern
.
default_args
name
=
urlpattern
.
name
# Add in both the existing and the new urlpattern
if
not
suffix_required
:
ret
.
append
(
urlpattern
)
ret
.
append
(
url
(
regex
,
view
,
kwargs
,
name
))
return
ret
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