I'm working with Django's named URL patterns, and was wondering how to
fetch the name of the URL pattern that triggered the view. For
example, with the following urlpatterns
urlpatterns = patterns('',
url(r'^archive/(\d{4})/$', archive, name="full-archive"),
url(r'^archive-summary/(\d{4})/$', archive, {'summary': True},
"arch-summary"),
)
is there any way to fetch the name="full-archive" and
name="arch-summary" parameter from inside the view?
I found a thread that talks about this same issue
(http://stackoverflow.com/questions/1042211/get-name-for-matched-url-pattern),
but the solution requires duplicating the URL pattern name in a
dictionary.
Thanks,
Nick
Can you get what you need within the view by using
request.build_absolute_uri()?
That looks like it does exactly what I'm looking for. I wish there
were a way to find the URL name without having to call the resolver
again, but your method looks pretty fast. Thanks!
Shawn, request.build_absolute_uri() returns a full path like
http://hostname/path/goes/here/, but it doesn't tell me the name of
the URL pattern that caused the request to be resolved to a particular
view.
Nick