diff options
| author | Ben Davis <bendavis78@gmail.com> | 2014-04-14 13:09:17 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-04-16 20:31:09 -0400 |
| commit | e0930608230fc7e1f1a68d51296661200857658a (patch) | |
| tree | f649b706c15ccdcd490c166365eb70e23ee1c58f | |
| parent | 82803611eb1ca2ec8f4ea8569d4bf4abbd91cdb2 (diff) | |
[1.6.x] Fixed #22220 -- Added more examples to reverse() documention.
Thanks EvilDMP for the suggestions.
Backport of 030dd4f72c from master
| -rw-r--r-- | docs/ref/urlresolvers.txt | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/docs/ref/urlresolvers.txt b/docs/ref/urlresolvers.txt index dc06a21f2b..549334d4ed 100644 --- a/docs/ref/urlresolvers.txt +++ b/docs/ref/urlresolvers.txt @@ -12,17 +12,38 @@ your code, Django provides the following function: .. function:: reverse(viewname, [urlconf=None, args=None, kwargs=None, current_app=None]) -``viewname`` is either the function name (either a function reference, or the -string version of the name, if you used that form in ``urlpatterns``) or the -:ref:`URL pattern name <naming-url-patterns>`. Normally, you won't need to -worry about the ``urlconf`` parameter and will only pass in the positional and -keyword arguments to use in the URL matching. For example:: +``viewname`` can be a string containing the Python path to the view object, a +:ref:`URL pattern name <naming-url-patterns>`, or the callable view object. +For example, given the following ``url``:: + + url(r'^archive/$', 'news.views.archive', name='news_archive') + +you can use any of the following to reverse the URL:: + + # using the Python path + reverse('news.views.archive') + + # using the named URL + reverse('news_archive') + + # passing a callable object + from news import views + reverse(views.archive) + +If the URL accepts arguments, you may pass them in ``args``. For example:: from django.core.urlresolvers import reverse def myview(request): return HttpResponseRedirect(reverse('arch-summary', args=[1945])) +You can also pass ``kwargs`` instead of ``args``. For example:: + + >>> reverse('admin:app_list', kwargs={'app_label': 'auth'}) + '/admin/auth/' + +``args`` and ``kwargs`` cannot be passed to ``reverse()`` at the same time. + If no match can be made, ``reverse()`` raises a :class:`~django.core.urlresolvers.NoReverseMatch` exception. @@ -39,12 +60,9 @@ This ``current_app`` argument is used as a hint to resolve application namespaces into URLs on specific application instances, according to the :ref:`namespaced URL resolution strategy <topics-http-reversing-url-namespaces>`. -You can use ``kwargs`` instead of ``args``. For example:: +The ``urlconf`` argument is the URLconf module containing the url patterns to +use for reversing. By default, the root URLconf for the current thread is used. - >>> reverse('admin:app_list', kwargs={'app_label': 'auth'}) - '/admin/auth/' - -``args`` and ``kwargs`` cannot be passed to ``reverse()`` at the same time. .. admonition:: Make sure your views are all correct. |
