diff options
Diffstat (limited to 'docs/topics/http')
| -rw-r--r-- | docs/topics/http/urls.txt | 61 |
1 files changed, 42 insertions, 19 deletions
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. |
