class ResolverMatch
[source]
-
func
-
The view function that would be used to serve the URL
-
args
-
The arguments that would be passed to the view function, as parsed from the URL.
-
kwargs
-
The keyword arguments that would be passed to the view function, as parsed from the URL.
-
url_name
-
The name of the URL pattern that matches the URL.
-
app_name
-
The application namespace for the URL pattern that matches the URL.
-
app_names
-
New in Django 1.9.
The list of individual namespace components in the full application namespace for the URL pattern that matches the URL. For example, if the
app_name
is'foo:bar'
, thenapp_names
will be['foo', 'bar']
.
-
namespace
-
The instance namespace for the URL pattern that matches the URL.
-
namespaces
-
The list of individual namespace components in the full instance namespace for the URL pattern that matches the URL. i.e., if the namespace is
foo:bar
, then namespaces will be['foo', 'bar']
.
-
view_name
-
The name of the view that matches the URL, including the namespace if there is one.
A ResolverMatch
object can then be interrogated to provide information about the URL pattern that matches a URL:
1 2 3 4 | # Resolve a URL match = resolve( '/some/path/' ) # Print the URL pattern that matches the URL print (match.url_name) |
A ResolverMatch
object can also be assigned to a triple:
1 | func, args, kwargs = resolve( '/some/path/' ) |
One possible use of resolve()
would be to test whether a view would raise a Http404
error before redirecting to it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from django.urls import resolve from django.http import HttpResponseRedirect, Http404 from django.utils.six.moves.urllib.parse import urlparse def myview(request): next = request.META.get( 'HTTP_REFERER' , None ) or '/' response = HttpResponseRedirect( next ) # modify the request and response as required, e.g. change locale # and set corresponding locale cookie view, args, kwargs = resolve(urlparse( next )[ 2 ]) kwargs[ 'request' ] = request try : view( * args, * * kwargs) except Http404: return HttpResponseRedirect( '/' ) return response |
Please login to continue.