diff options
| author | Ramiro Morales <cramm0@gmail.com> | 2011-09-11 22:36:16 +0000 |
|---|---|---|
| committer | Ramiro Morales <cramm0@gmail.com> | 2011-09-11 22:36:16 +0000 |
| commit | 26b812208751edf87b4df0aee00996c5c7bcd4c9 (patch) | |
| tree | 0857822a7dbd27f459b9dfe2075bf194a3e16ce8 /docs | |
| parent | fd9045346286208c0dbd0afc1f820e868910dac8 (diff) | |
Fixed #14675 -- Completed removal of `from django.conf.urls.default import *` usage.
This applies to both our own [test] code and documentation examples. Also:
* Moved the functions and handlers from `django.conf.urls.defaults` up to
`django.conf.urls` deprecating the former module.
* Added documentation for `handler403`.
* Tweaked the URLs topic document a bit.
Thanks to pupeno and cdestigter for their great work contributing patches.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16818 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/internals/deprecation.txt | 6 | ||||
| -rw-r--r-- | docs/intro/overview.txt | 2 | ||||
| -rw-r--r-- | docs/intro/tutorial02.txt | 2 | ||||
| -rw-r--r-- | docs/intro/tutorial03.txt | 30 | ||||
| -rw-r--r-- | docs/intro/tutorial04.txt | 10 | ||||
| -rw-r--r-- | docs/ref/contrib/admin/index.txt | 6 | ||||
| -rw-r--r-- | docs/ref/contrib/comments/example.txt | 4 | ||||
| -rw-r--r-- | docs/ref/contrib/formtools/form-wizard.txt | 6 | ||||
| -rw-r--r-- | docs/ref/contrib/gis/tutorial.txt | 2 | ||||
| -rw-r--r-- | docs/ref/contrib/sitemaps.txt | 2 | ||||
| -rw-r--r-- | docs/ref/contrib/syndication.txt | 4 | ||||
| -rw-r--r-- | docs/ref/models/instances.txt | 2 | ||||
| -rw-r--r-- | docs/releases/1.4.txt | 17 | ||||
| -rw-r--r-- | docs/topics/class-based-views.txt | 6 | ||||
| -rw-r--r-- | docs/topics/generic-views.txt | 6 | ||||
| -rw-r--r-- | docs/topics/http/urls.txt | 61 | ||||
| -rw-r--r-- | docs/topics/i18n/internationalization.txt | 6 |
17 files changed, 106 insertions, 66 deletions
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 88354e1b41..09966c247b 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -243,6 +243,12 @@ their deprecation, as per the :ref:`deprecation policy :mod:`django.contrib.gis.geoip` in 1.4 -- the shortcut in :mod:`django.contrib.gis.utils` will be removed. + * In 1.4, functions :func:`~django.conf.urls.include`, :func:`~django.conf.urls.patterns` + and :func:`~django.conf.urls.url` plus :data:`~django.conf.urls.handler404`, + :data:`~django.conf.urls.handler500` were moved to :mod:`django.conf.urls` + from their previous location ``django.conf.urls.defaults``. This module + was deprecated at the same time and will be removed in this Django release. + 2.0 --- diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index 34572a6c80..737db21866 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -176,7 +176,7 @@ decouple URLs from Python code. Here's what a URLconf might look like for the ``Reporter``/``Article`` example above:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^articles/(\d{4})/$', 'news.views.year_archive'), diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt index 2c625a73a5..589e11f617 100644 --- a/docs/intro/tutorial02.txt +++ b/docs/intro/tutorial02.txt @@ -40,7 +40,7 @@ activate the admin site for your installation, do these three things: .. parsed-literal:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: **from django.contrib import admin** diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 82cf60b118..a489a77930 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -78,7 +78,7 @@ point at that file:: Time for an example. Edit ``mysite/urls.py`` so it looks like this:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() @@ -367,7 +367,7 @@ special: It's just a normal view. You normally won't have to bother with writing 404 views. By default, URLconfs have the following line up top:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url That takes care of setting ``handler404`` in the current module. As you can see in ``django/conf/urls/defaults.py``, ``handler404`` is set to @@ -443,7 +443,7 @@ Namely, ``polls.views`` is in every callback. Because this is a common case, the URLconf framework provides a shortcut for common prefixes. You can factor out the common prefixes and add them as the -first argument to :func:`~django.conf.urls.defaults.patterns`, like so:: +first argument to :func:`~django.conf.urls.patterns`, like so:: urlpatterns = patterns('polls.views', (r'^polls/$', 'index'), @@ -457,21 +457,21 @@ tidier. Since you generally don't want the prefix for one app to be applied to every callback in your URLconf, you can concatenate multiple -:func:`~django.conf.urls.defaults.patterns`. Your full ``mysite/urls.py`` might +:func:`~django.conf.urls.patterns`. Your full ``mysite/urls.py`` might now look like this:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() - + urlpatterns = patterns('polls.views', (r'^polls/$', 'index'), (r'^polls/(?P<poll_id>\d+)/$', 'detail'), (r'^polls/(?P<poll_id>\d+)/results/$', 'results'), (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), ) - + urlpatterns += patterns('', url(r'^admin/', include(admin.site.urls)), ) @@ -494,23 +494,23 @@ URLs within the app directory. Copy the file ``mysite/urls.py`` to ``polls/urls.py``. Then, change ``mysite/urls.py`` to remove the poll-specific URLs and insert an -:func:`~django.conf.urls.defaults.include`, leaving you with:: +:func:`~django.conf.urls.include`, leaving you with:: # This also imports the include function - from django.conf.urls.defaults import patterns, include, url - + from django.conf.urls import patterns, include, url + from django.contrib import admin admin.autodiscover() - + urlpatterns = patterns('', (r'^polls/', include('polls.urls')), url(r'^admin/', include(admin.site.urls)), ) -:func:`~django.conf.urls.defaults.include` simply references another URLconf. +:func:`~django.conf.urls.include` simply references another URLconf. Note that the regular expression doesn't have a ``$`` (end-of-string match character) but has the trailing slash. Whenever Django encounters -:func:`~django.conf.urls.defaults.include`, it chops off whatever part of the +:func:`~django.conf.urls.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. @@ -527,7 +527,7 @@ URLconf by removing the leading "polls/" from each line, and removing the lines registering the admin site. Your ``polls/urls.py`` file should now look like this:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url urlpatterns = patterns('polls.views', (r'^$', 'index'), @@ -536,7 +536,7 @@ this:: (r'^(?P<poll_id>\d+)/vote/$', 'vote'), ) -The idea behind :func:`~django.conf.urls.defaults.include` and URLconf +The idea behind :func:`~django.conf.urls.include` and URLconf decoupling is to make it easy to plug-and-play URLs. Now that polls are in their own URLconf, they can be placed under "/polls/", or under "/fun_polls/", or under "/content/polls/", or any other path root, and the app will still work. diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt index 86d4eef9b7..f0d2abc191 100644 --- a/docs/intro/tutorial04.txt +++ b/docs/intro/tutorial04.txt @@ -218,7 +218,7 @@ Read on for details. First, open the ``polls/urls.py`` URLconf. It looks like this, according to the tutorial so far:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url urlpatterns = patterns('polls.views', (r'^$', 'index'), @@ -229,7 +229,7 @@ tutorial so far:: Change it like so:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url from django.views.generic import DetailView, ListView from polls.models import Poll @@ -269,9 +269,9 @@ two views abstract the concepts of "display a list of objects" and that we have a way to refer to its URL later on (see the documentation about :ref:`naming URL patterns <naming-url-patterns>` for information). We're also using the - :func:`~django.conf.urls.default.url` function from - :mod:`django.conf.urls.defaults` here. It's a good habit to use - :func:`~django.conf.urls.defaults.url` when you are providing a + :func:`~django.conf.urls.url` function from + :mod:`django.conf.urls` here. It's a good habit to use + :func:`~django.conf.urls.url` when you are providing a pattern name like this. By default, the :class:`~django.views.generic.list.DetailView` generic diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index e280463f8c..bdbe61505d 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1831,7 +1831,7 @@ In this example, we register the default ``AdminSite`` instance ``django.contrib.admin.site`` at the URL ``/admin/`` :: # urls.py - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.contrib import admin admin.autodiscover() @@ -1847,7 +1847,7 @@ In this example, we register the ``AdminSite`` instance ``myproject.admin.admin_site`` at the URL ``/myadmin/`` :: # urls.py - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from myproject.admin import admin_site urlpatterns = patterns('', @@ -1871,7 +1871,7 @@ separate versions of the admin site -- using the ``AdminSite`` instances respectively:: # urls.py - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from myproject.admin import basic_site, advanced_site urlpatterns = patterns('', diff --git a/docs/ref/contrib/comments/example.txt b/docs/ref/contrib/comments/example.txt index 253701b8da..82ae08e66d 100644 --- a/docs/ref/contrib/comments/example.txt +++ b/docs/ref/contrib/comments/example.txt @@ -143,7 +143,7 @@ enable it in your project's ``urls.py``: .. code-block:: python - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.contrib.comments.feeds import LatestCommentFeed urlpatterns = patterns('', @@ -161,7 +161,7 @@ syndication feed view: .. code-block:: python - from django.conf.urls.defaults import * + from django.conf.urls import patterns from django.contrib.comments.feeds import LatestCommentFeed feeds = { diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 2645c28a32..24f81e244d 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -217,7 +217,7 @@ deploy the new :class:`WizardView` object a URL in the ``urls.py``. The wizard's :meth:`as_view` method takes a list of your :class:`~django.forms.Form` classes as an argument during instantiation:: - from django.conf.urls.defaults import patterns + from django.conf.urls import patterns from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard @@ -525,7 +525,7 @@ We define our wizard in a ``views.py``:: We need to add the ``ContactWizard`` to our ``urls.py`` file:: - from django.conf.urls.defaults import pattern + from django.conf.urls import pattern from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard, show_message_form_condition @@ -572,7 +572,7 @@ Additionally you have to pass two more arguments to the Example code for the changed ``urls.py`` file:: - from django.conf.urls.defaults import url, patterns + from django.conf.urls import url, patterns from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard diff --git a/docs/ref/contrib/gis/tutorial.txt b/docs/ref/contrib/gis/tutorial.txt index bf6a037097..5138c4092a 100644 --- a/docs/ref/contrib/gis/tutorial.txt +++ b/docs/ref/contrib/gis/tutorial.txt @@ -697,7 +697,7 @@ Let's dive in again -- create a file called ``admin.py`` inside the Next, edit your ``urls.py`` in the ``geodjango`` project folder to look as follows:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.contrib.gis import admin admin.autodiscover() diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt index 300c142f0b..ecc5024877 100644 --- a/docs/ref/contrib/sitemaps.txt +++ b/docs/ref/contrib/sitemaps.txt @@ -241,7 +241,7 @@ Example Here's an example of a :doc:`URLconf </topics/http/urls>` using both:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap from blog.models import Entry diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt index 398f6ca4cb..bbc58cef55 100644 --- a/docs/ref/contrib/syndication.txt +++ b/docs/ref/contrib/syndication.txt @@ -80,7 +80,7 @@ latest five news items:: To connect a URL to this feed, put an instance of the Feed object in your :doc:`URLconf </topics/http/urls>`. For example:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from myproject.feeds import LatestEntriesFeed urlpatterns = patterns('', @@ -327,7 +327,7 @@ Here's a full example:: And the accompanying URLconf:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from myproject.feeds import RssSiteNewsFeed, AtomSiteNewsFeed urlpatterns = patterns('', diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index 8809eaf86a..4ab9dd3011 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -524,7 +524,7 @@ pattern, it's possible to give a name to a pattern, and then reference the name rather than the view function. A named URL pattern is defined by replacing the pattern tuple by a call to the ``url`` function):: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include url(r'^people/(\d+)/$', 'blog_views.generic_detail', name='people_view'), diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index f078ee0dfd..94c1721992 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -290,9 +290,10 @@ Django 1.4 also includes several smaller improvements worth noting: MySQL with the InnoDB database engine. * A new 403 response handler has been added as - ``'django.views.defaults.permission_denied'``. See the documentation - about :ref:`the 403 (HTTP Forbidden) view<http_forbidden_view>` for more - information. + ``'django.views.defaults.permission_denied'``. You can set your own handler by + setting the value of :data:`django.conf.urls.handler403`. See the + documentation about :ref:`the 403 (HTTP Forbidden) view<http_forbidden_view>` + for more information. * The :ttag:`trans` template tag now takes an optional ``as`` argument to be able to retrieve a translation string without displaying it but setting @@ -590,3 +591,13 @@ backwards-compatibility shim will be removed entirely. The existence of any ``'filters'`` key under the ``'mail_admins'`` handler will disable this backward-compatibility shim and deprecation warning. + +``django.conf.urls.defaults`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Until Django 1.3 the functions :func:`~django.conf.urls.include`, +:func:`~django.conf.urls.patterns` and :func:`~django.conf.urls.url` plus +:data:`~django.conf.urls.handler404`, :data:`~django.conf.urls.handler500` +were located in a ``django.conf.urls.defaults`` module. + +Starting with Django 1.4 they are now available in :mod:`django.conf.urls`. diff --git a/docs/topics/class-based-views.txt b/docs/topics/class-based-views.txt index 8092cb29af..62368faee1 100644 --- a/docs/topics/class-based-views.txt +++ b/docs/topics/class-based-views.txt @@ -75,7 +75,7 @@ views themselves are classes, we point the URL to the ``as_view`` class method instead, which is the entry point for class-based views:: # urls.py - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from some_app.views import AboutView urlpatterns = patterns('', @@ -86,7 +86,7 @@ Alternatively, if you're only changing a few simple attributes on a class-based view, you can simply pass the new attributes into the ``as_view`` method call itself:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.views.generic import TemplateView urlpatterns = patterns('', @@ -135,7 +135,7 @@ be using these models:: To build a list page of all publishers, we'd use a URLconf along these lines:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.views.generic import ListView from books.models import Publisher diff --git a/docs/topics/generic-views.txt b/docs/topics/generic-views.txt index 9251b3ad44..78c3c0199f 100644 --- a/docs/topics/generic-views.txt +++ b/docs/topics/generic-views.txt @@ -58,7 +58,7 @@ URLconf tuple for a given pattern. For example, here's a simple URLconf you could use to present a static "about" page:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.views.generic.simple import direct_to_template urlpatterns = patterns('', @@ -80,7 +80,7 @@ the URLconf to point to a view function: .. parsed-literal:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.views.generic.simple import direct_to_template **from books.views import about_pages** @@ -160,7 +160,7 @@ be using these models:: To build a list page of all publishers, we'd use a URLconf along these lines:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include from django.views.generic import list_detail from books.models import Publisher diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt index c1a15ab229..18789b3f25 100644 --- a/docs/topics/http/urls.txt +++ b/docs/topics/http/urls.txt @@ -50,7 +50,7 @@ algorithm the system follows to determine which Python code to execute: 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 :func:`django.conf.urls.defaults.patterns`. + the function :func:`django.conf.urls.patterns`. 3. Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL. @@ -69,7 +69,7 @@ Example Here's a sample URLconf:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^articles/2003/$', 'news.views.special_case_2003'), @@ -80,9 +80,6 @@ Here's a sample URLconf:: Notes: - * ``from django.conf.urls.defaults import *`` makes the ``patterns()`` - function available. - * To capture a value from the URL, just put parenthesis around it. * There's no need to add a leading slash, because every URL has that. For @@ -184,13 +181,21 @@ Syntax of the urlpatterns variable ================================== ``urlpatterns`` should be a Python list, in the format returned by the function -:func:`django.conf.urls.defaults.patterns`. Always use ``patterns()`` to create +:func:`django.conf.urls.patterns`. Always use ``patterns()`` to create the ``urlpatterns`` variable. -Convention is to use ``from django.conf.urls.defaults import *`` at the top of -your URLconf. This gives your module access to these objects: +``django.conf.urls`` utility functions +====================================== + +.. module:: django.conf.urls -.. module:: django.conf.urls.defaults +.. deprecated:: 1.4 + Starting with Django 1.4 functions ``patterns``, ``url``, ``include`` plus + the ``handler*`` symbols described below live in the ``django.conf.urls`` + module. + + Until Django 1.3 they were located in ``django.conf.urls.defaults``. You + still can import them from there but it will be removed in Django 1.6. patterns -------- @@ -281,6 +286,24 @@ URLconf will have no effect. See the documentation on :ref:`customizing error views <customizing-error-views>` for more details. +handler403 +---------- + +.. data:: handler403 + +A callable, or a string representing the full Python import path to the view +that should be called if the user has no the permissions required to access +a resource. + +By default, this is ``'django.views.defaults.permission_denied'``. That default +value should suffice. + +See the documentation about :ref:`the 403 (HTTP Forbidden) view +<http_forbidden_view>` for more information. + +.. versionadded:: 1.4 + ``handler403`` is new in Django 1.4. + handler404 ---------- @@ -355,7 +378,7 @@ code duplication. Here's the example URLconf from the :doc:`Django overview </intro/overview>`:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^articles/(\d{4})/$', 'news.views.year_archive'), @@ -370,7 +393,7 @@ each view function. With this in mind, the above example can be written more concisely as:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('news.views', (r'^articles/(\d{4})/$', 'year_archive'), @@ -391,7 +414,7 @@ Just add multiple ``patterns()`` objects together, like this: Old:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^$', 'django.views.generic.date_based.archive_index'), @@ -401,7 +424,7 @@ Old:: New:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('django.views.generic.date_based', (r'^$', 'archive_index'), @@ -421,7 +444,7 @@ essentially "roots" a set of URLs below other ones. For example, here's the URLconf for the `Django Web site`_ itself. It includes a number of other URLconfs:: - from django.conf.urls.defaults import * + from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^weblog/', include('django_website.apps.blog.urls.blog')), @@ -439,7 +462,7 @@ Another possibility 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 * + from django.conf.urls import patterns, url, include extra_patterns = patterns('', url(r'reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'), @@ -784,8 +807,8 @@ following would happen: * ``foo:index`` will again resolve to the index page of the instance ``foo``. -Utility methods -=============== +``django.core.urlresolvers`` utility functions +============================================== .. currentmodule:: django.core.urlresolvers @@ -793,7 +816,7 @@ reverse() --------- If you need to use something similar to the :ttag:`url` template tag in -your code, Django provides the following method (in the +your code, Django provides the following function (in the :mod:`django.core.urlresolvers` module): .. function:: reverse(viewname, [urlconf=None, args=None, kwargs=None, current_app=None]) @@ -859,7 +882,7 @@ reverse_lazy() A lazily evaluated version of `reverse()`_. It is useful for when you need to use a URL reversal before your project's -URLConf is loaded. Some common cases where this method is necessary are: +URLConf is loaded. Some common cases where this function is necessary are: * providing a reversed URL as the ``url`` attribute of a generic class-based view. diff --git a/docs/topics/i18n/internationalization.txt b/docs/topics/i18n/internationalization.txt index dbeb77c879..744509638d 100644 --- a/docs/topics/i18n/internationalization.txt +++ b/docs/topics/i18n/internationalization.txt @@ -819,11 +819,11 @@ Language prefix in URL patterns .. function:: i18n_patterns(prefix, pattern_description, ...) This function can be used in your root URLconf as a replacement for the normal -:func:`django.conf.urls.defaults.patterns` function. Django will automatically +:func:`django.conf.urls.patterns` function. Django will automatically prepend the current active language code to all url patterns defined within :func:`~django.conf.urls.i18n.i18n_patterns`. Example URL patterns:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url from django.conf.urls.i18n import i18n_patterns urlpatterns = patterns('' @@ -877,7 +877,7 @@ Translating URL patterns URL patterns can also be marked translatable using the :func:`~django.utils.translation.ugettext_lazy` function. Example:: - from django.conf.urls.defaults import patterns, include, url + from django.conf.urls import patterns, include, url from django.conf.urls.i18n import i18n_patterns from django.utils.translation import ugettext_lazy as _ |
