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:29:17 -0400 |
| commit | 030dd4f72ca4d84c0a5e09ee625123d03651fdd1 (patch) | |
| tree | be790c5be2c59e0399b15ff105c0a4498f136493 /docs/ref | |
| parent | a13df671a5a5b867397ce05f73a59a3f4504868a (diff) | |
Fixed #22220 -- Added more examples to reverse() documention.
Thanks EvilDMP for the suggestions.
Diffstat (limited to 'docs/ref')
| -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 13e5c559db..491c4cd14e 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. |
