Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
b946db52
Kaydet (Commit)
b946db52
authored
Eyl 27, 2012
tarafından
Florian Apolloner
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fixed #15695 -- Added `ResolverMatch` to the request object.
üst
44767f2c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
29 additions
and
3 deletions
+29
-3
base.py
django/core/handlers/base.py
+4
-3
request-response.txt
docs/ref/request-response.txt
+11
-0
1.5.txt
docs/releases/1.5.txt
+3
-0
namespace_urls.py
tests/regressiontests/urlpatterns_reverse/namespace_urls.py
+1
-0
tests.py
tests/regressiontests/urlpatterns_reverse/tests.py
+5
-0
views.py
tests/regressiontests/urlpatterns_reverse/views.py
+5
-0
No files found.
django/core/handlers/base.py
Dosyayı görüntüle @
b946db52
...
...
@@ -95,14 +95,15 @@ class BaseHandler(object):
break
if
response
is
None
:
if
hasattr
(
request
,
"urlconf"
):
if
hasattr
(
request
,
'urlconf'
):
# Reset url resolver with a custom urlconf.
urlconf
=
request
.
urlconf
urlresolvers
.
set_urlconf
(
urlconf
)
resolver
=
urlresolvers
.
RegexURLResolver
(
r'^/'
,
urlconf
)
callback
,
callback_args
,
callback_kwargs
=
resolver
.
resolve
(
request
.
path_info
)
resolver_match
=
resolver
.
resolve
(
request
.
path_info
)
callback
,
callback_args
,
callback_kwargs
=
resolver_match
request
.
resolver_match
=
resolver_match
# Apply view middleware
for
middleware_method
in
self
.
_view_middleware
:
...
...
docs/ref/request-response.txt
Dosyayı görüntüle @
b946db52
...
...
@@ -192,6 +192,17 @@ All attributes should be considered read-only, unless stated otherwise below.
URLconf for the current request, overriding the :setting:`ROOT_URLCONF`
setting. See :ref:`how-django-processes-a-request` for details.
.. attribute:: HttpRequest.resolver_match
.. versionadded:: 1.5
An instance of :class:`~django.core.urlresolvers.ResolverMatch` representing
the resolved url. This attribute is only set after url resolving took place,
which means it's available in all views but not in middleware methods which
are executed before url resolving takes place (like ``process_request``, you
can use ``process_view`` instead).
Methods
-------
...
...
docs/releases/1.5.txt
Dosyayı görüntüle @
b946db52
...
...
@@ -127,6 +127,9 @@ Django 1.5 also includes several smaller improvements worth noting:
configuration duplication. More information can be found in the
:func:`~django.contrib.auth.decorators.login_required` documentation.
* An instance of :class:`~django.core.urlresolvers.ResolverMatch` is stored on
the request as ``resolver_match``.
Backwards incompatible changes in 1.5
=====================================
...
...
tests/regressiontests/urlpatterns_reverse/namespace_urls.py
Dosyayı görüntüle @
b946db52
...
...
@@ -28,6 +28,7 @@ otherobj2 = URLObject('nodefault', 'other-ns2')
urlpatterns
=
patterns
(
'regressiontests.urlpatterns_reverse.views'
,
url
(
r'^normal/$'
,
'empty_view'
,
name
=
'normal-view'
),
url
(
r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$'
,
'empty_view'
,
name
=
'normal-view'
),
url
(
r'^resolver_match/$'
,
'pass_resolver_match_view'
,
name
=
'test-resolver-match'
),
url
(
r'^\+\\\$\*/$'
,
'empty_view'
,
name
=
'special-view'
),
...
...
tests/regressiontests/urlpatterns_reverse/tests.py
Dosyayı görüntüle @
b946db52
...
...
@@ -512,6 +512,11 @@ class ResolverMatchTests(TestCase):
self
.
assertEqual
(
match
[
1
],
args
)
self
.
assertEqual
(
match
[
2
],
kwargs
)
def
test_resolver_match_on_request
(
self
):
response
=
self
.
client
.
get
(
'/resolver_match/'
)
resolver_match
=
response
.
resolver_match
self
.
assertEqual
(
resolver_match
.
url_name
,
'test-resolver-match'
)
class
ErroneousViewTests
(
TestCase
):
urls
=
'regressiontests.urlpatterns_reverse.erroneous_urls'
...
...
tests/regressiontests/urlpatterns_reverse/views.py
Dosyayı görüntüle @
b946db52
...
...
@@ -19,6 +19,11 @@ def defaults_view(request, arg1, arg2):
def
erroneous_view
(
request
):
import
non_existent
def
pass_resolver_match_view
(
request
,
*
args
,
**
kwargs
):
response
=
HttpResponse
(
''
)
response
.
resolver_match
=
request
.
resolver_match
return
response
uncallable
=
"Can I be a view? Pleeeease?"
class
ViewClass
(
object
):
...
...
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