Fixed #11439 -- Added docs on including URL patterns as an iterable. Thanks to Ramiro Morales for the draft text.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11221 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-07-11 15:38:47 +00:00
parent 2124811150
commit ebce1b9a2b
1 changed files with 31 additions and 5 deletions

View File

@ -40,14 +40,14 @@ algorithm the system follows to determine which Python code to execute:
this is the value of the ``ROOT_URLCONF`` setting, but if the incoming
``HttpRequest`` object has an attribute called ``urlconf``, its value
will be used in place of the ``ROOT_URLCONF`` setting.
2. Django loads that Python module and looks for the variable
``urlpatterns``. This should be a Python list, in the format returned by
the function ``django.conf.urls.defaults.patterns()``.
3. Django runs through each URL pattern, in order, and stops at the first
one that matches the requested URL.
4. Once one of the regexes matches, Django imports and calls the given
view, which is a simple Python function. The view gets passed an
:class:`~django.http.HttpRequest` as its first argument and any values
@ -263,8 +263,15 @@ value should suffice.
include
-------
A function that takes a full Python import path to another URLconf that should
be "included" in this place. See `Including other URLconfs`_ below.
A function that takes a full Python import path to another URLconf module that
should be "included" in this place.
.. versionadded:: 1.1
:meth:``include`` also accepts as an argument an iterable that returns URL
patterns.
See `Including other URLconfs`_ below.
Notes on capturing text in URLs
===============================
@ -391,6 +398,25 @@ Django encounters ``include()``, it chops off whatever part of the URL matched
up to that point and sends the remaining string to the included URLconf for
further processing.
.. versionadded:: 1.1
Another posibility is to include additional URL patterns not by specifying the
URLconf Python module defining them as the `include`_ argument but by using
directly the pattern list as returned by `patterns`_ instead. For example::
from django.conf.urls.defaults import *
extra_patterns = patterns('',
url(r'reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'),
url(r'charge/$', 'credit.views.charge', name='credit-charge'),
)
urlpatterns = patterns('',
url(r'^$', 'apps.main.views.homepage', name='site-homepage'),
(r'^help/', include('apps.help.urls')),
(r'^credit/', include(extra_patterns)),
)
.. _`Django Web site`: http://www.djangoproject.com/
Captured parameters