Index: docs/intro/tutorial03.txt
===================================================================
--- docs/intro/tutorial03.txt	(révision 16590)
+++ docs/intro/tutorial03.txt	(copie de travail)
@@ -122,14 +122,13 @@
 ``http://www.example.com/myapp/?page=3``, the URLconf will look for ``myapp/``.
 
 If you need help with regular expressions, see `Wikipedia's entry`_ and the
-`Python documentation`_. Also, the O'Reilly book "Mastering Regular Expressions"
-by Jeffrey Friedl is fantastic.
+:mod:`Python documentation<re>`. Also, the O'Reilly book "Mastering Regular
+Expressions" by Jeffrey Friedl is fantastic.
 
 Finally, a performance note: these regular expressions are compiled the first
 time the URLconf module is loaded. They're super fast.
 
 .. _Wikipedia's entry: http://en.wikipedia.org/wiki/Regular_expression
-.. _Python documentation: http://docs.python.org/library/re.html
 
 Write your first view
 =====================
Index: docs/internals/contributing/writing-code/branch-policy.txt
===================================================================
--- docs/internals/contributing/writing-code/branch-policy.txt	(révision 16590)
+++ docs/internals/contributing/writing-code/branch-policy.txt	(copie de travail)
@@ -146,8 +146,8 @@
 location of the branch's ``django`` package. If you want to switch back, just
 change the symlink to point to the old code.
 
-A third option is to use a `path file`_ (``<something>.pth``). First, make sure
-there are no files, directories or symlinks named ``django`` in your
+A third option is to use a :mod:`path file<site>` (``<something>.pth``). First,
+make sure there are no files, directories or symlinks named ``django`` in your
 ``site-packages`` directory. Then create a text file named ``django.pth`` and
 save it to your ``site-packages`` directory. That file should contain a path to
 your copy of Django on a single line and optional comments. Here is an example
@@ -168,5 +168,4 @@
     # On windows a path may look like this:
     # C:/path/to/<branch>
 
-.. _path file: http://docs.python.org/library/site.html
 .. _django-developers: http://groups.google.com/group/django-developers
Index: docs/howto/outputting-csv.txt
===================================================================
--- docs/howto/outputting-csv.txt	(révision 16590)
+++ docs/howto/outputting-csv.txt	(copie de travail)
@@ -3,17 +3,15 @@
 ==========================
 
 This document explains how to output CSV (Comma Separated Values) dynamically
-using Django views. To do this, you can either use the `Python CSV library`_ or
-the Django template system.
+using Django views. To do this, you can either use the Python CSV library or the
+Django template system.
 
-.. _Python CSV library: http://docs.python.org/library/csv.html
-
 Using the Python CSV library
 ============================
 
-Python comes with a CSV library, ``csv``. The key to using it with Django is
-that the ``csv`` module's CSV-creation capability acts on file-like objects, and
-Django's :class:`~django.http.HttpResponse` objects are file-like objects.
+Python comes with a CSV library, :mod:`csv`. The key to using it with Django is
+that the :mod:`csv` module's CSV-creation capability acts on file-like objects,
+and Django's :class:`~django.http.HttpResponse` objects are file-like objects.
 
 Here's an example::
 
@@ -72,12 +70,11 @@
     * Use the `python-unicodecsv module`_, which aims to be a drop-in
       replacement for ``csv`` that gracefully handles Unicode.
 
-For more information, see the Python `CSV File Reading and Writing`_
+For more information, see the Python :mod:`CSV File Reading and Writing<csv>`
 documentation.
 
 .. _`csv module's examples section`: http://docs.python.org/library/csv.html#examples
 .. _`python-unicodecsv module`: https://github.com/jdunck/python-unicodecsv
-.. _`CSV File Reading and Writing`: http://docs.python.org/library/csv.html
 
 Using the template system
 =========================
Index: docs/howto/custom-template-tags.txt
===================================================================
--- docs/howto/custom-template-tags.txt	(révision 16590)
+++ docs/howto/custom-template-tags.txt	(copie de travail)
@@ -335,15 +335,14 @@
 
 For example, let's write a template tag, ``{% current_time %}``, that displays
 the current date/time, formatted according to a parameter given in the tag, in
-`strftime syntax`_. It's a good idea to decide the tag syntax before anything
-else. In our case, let's say the tag should be used like this:
+:func:`strftime syntax<time.strftime>`. It's a good idea to decide the tag
+syntax before anything else. In our case, let's say the tag should be used like
+this:
 
 .. code-block:: html+django
 
     <p>The time is {% current_time "%Y-%m-%d %I:%M %p" %}.</p>
 
-.. _`strftime syntax`: http://docs.python.org/library/time.html#time.strftime
-
 The parser for this function should grab the parameter and create a ``Node``
 object::
 
Index: docs/howto/outputting-pdf.txt
===================================================================
--- docs/howto/outputting-pdf.txt	(révision 16590)
+++ docs/howto/outputting-pdf.txt	(copie de travail)
@@ -97,9 +97,10 @@
 ============
 
 If you're creating a complex PDF document with ReportLab, consider using the
-cStringIO_ library as a temporary holding place for your PDF file. The cStringIO
-library provides a file-like object interface that is particularly efficient.
-Here's the above "Hello World" example rewritten to use ``cStringIO``::
+:mod:`cStringIO` library as a temporary holding place for your PDF file. The
+``cStringIO`` library provides a file-like object interface that is particularly
+efficient. Here's the above "Hello World" example rewritten to use
+``cStringIO``::
 
     # Fall back to StringIO in environments where cStringIO is not available
     try:
@@ -133,8 +134,6 @@
         response.write(pdf)
         return response
 
-.. _cStringIO: http://docs.python.org/library/stringio.html#module-cStringIO
-
 Further resources
 =================
 
Index: docs/topics/http/file-uploads.txt
===================================================================
--- docs/topics/http/file-uploads.txt	(révision 16590)
+++ docs/topics/http/file-uploads.txt	(copie de travail)
@@ -149,8 +149,8 @@
 
     :setting:`FILE_UPLOAD_PERMISSIONS`
         The numeric mode (i.e. ``0644``) to set newly uploaded files to. For
-        more information about what these modes mean, see the `documentation for
-        os.chmod`_
+        more information about what these modes mean, see the documentation for
+        :func:`os.chmod`.
 
         If this isn't given or is ``None``, you'll get operating-system
         dependent behavior. On most platforms, temporary files will have a mode
@@ -179,8 +179,6 @@
         Which means "try to upload to memory first, then fall back to temporary
         files."
 
-.. _documentation for os.chmod: http://docs.python.org/library/os.html#os.chmod
-
 ``UploadedFile`` objects
 ========================
 
Index: docs/topics/http/sessions.txt
===================================================================
--- docs/topics/http/sessions.txt	(révision 16590)
+++ docs/topics/http/sessions.txt	(copie de travail)
@@ -549,15 +549,13 @@
 =================
 
     * The session dictionary should accept any pickleable Python object. See
-      `the pickle module`_ for more information.
+      :mod:`the pickle module <pickle>` for more information.
 
     * Session data is stored in a database table named ``django_session`` .
 
     * Django only sends a cookie if it needs to. If you don't set any session
       data, it won't send a session cookie.
 
-.. _`the pickle module`: http://docs.python.org/library/pickle.html
-
 Session IDs in URLs
 ===================
 
Index: docs/topics/testing.txt
===================================================================
--- docs/topics/testing.txt	(révision 16590)
+++ docs/topics/testing.txt	(copie de travail)
@@ -68,7 +68,7 @@
 Writing unit tests
 ------------------
 
-Django's unit tests use a Python standard library module: unittest_. This
+Django's unit tests use a Python standard library module: :mod:`unittest`. This
 module defines tests in class-based approach.
 
 .. admonition:: unittest2
@@ -136,20 +136,18 @@
 Python documentation for more details on how to construct a complex test
 suite.
 
-For more details about ``unittest``, see the `standard library unittest
-documentation`_.
+For more details about ``unittest``, see the :mod:`standard library unittest
+documentation <unittest>`.
 
-.. _unittest: http://docs.python.org/library/unittest.html
-.. _standard library unittest documentation: unittest_
 .. _suggested organization: http://docs.python.org/library/unittest.html#organizing-tests
 
 Writing doctests
 ----------------
 
-Doctests use Python's standard doctest_ module, which searches your docstrings
-for statements that resemble a session of the Python interactive interpreter.
-A full explanation of how doctest works is out of the scope of this document;
-read Python's official documentation for the details.
+Doctests use :mod:`Python's standard doctest module <doctest>`, which searches
+your docstrings for statements that resemble a session of the Python interactive
+interpreter. A full explanation of how doctest works is out of the scope of this
+document; read Python's official documentation for the details.
 
 .. admonition:: What's a **docstring**?
 
@@ -221,13 +219,9 @@
 on this.) Note that to use this feature, the database user Django is connecting
 as must have ``CREATE DATABASE`` rights.
 
-For more details about how doctest works, see the `standard library
-documentation for doctest`_.
+For more details about how doctest works, see the :mod:`standard library
+documentation for doctest<doctest>`.
 
-.. _doctest: http://docs.python.org/library/doctest.html
-.. _standard library documentation for doctest: doctest_
-
-
 Which should I use?
 -------------------
 
@@ -639,7 +633,8 @@
 
       The test client is not capable of retrieving Web pages that are not
       powered by your Django project. If you need to retrieve other Web pages,
-      use a Python standard library module such as urllib_ or urllib2_.
+      use a Python standard library module such as :mod:`urllib` or
+      :mod:`urllib2`.
 
     * To resolve URLs, the test client uses whatever URLconf is pointed-to by
       your :setting:`ROOT_URLCONF` setting.
@@ -668,10 +663,6 @@
           >>> from django.test import Client
           >>> csrf_client = Client(enforce_csrf_checks=True)
 
-
-.. _urllib: http://docs.python.org/library/urllib.html
-.. _urllib2: http://docs.python.org/library/urllib2.html
-
 Making requests
 ~~~~~~~~~~~~~~~
 
@@ -1003,7 +994,7 @@
 .. attribute:: Client.cookies
 
     A Python ``SimpleCookie`` object, containing the current values of all the
-    client cookies. See the `Cookie module documentation`_ for more.
+    client cookies. See the :mod:`Cookie module documentation<cookie>` for more.
 
 .. attribute:: Client.session
 
@@ -1019,8 +1010,6 @@
             session['somekey'] = 'test'
             session.save()
 
-.. _Cookie module documentation: http://docs.python.org/library/cookie.html
-
 Example
 ~~~~~~~
 
Index: docs/topics/logging.txt
===================================================================
--- docs/topics/logging.txt	(révision 16590)
+++ docs/topics/logging.txt	(copie de travail)
@@ -11,12 +11,10 @@
 ======================
 
 Django uses Python's builtin logging module to perform system logging.
-The usage of the logging module is discussed in detail in `Python's
-own documentation`_. However, if you've never used Python's logging
+The usage of the logging module is discussed in detail in :mod:`Python's
+own documentation <logging>`. However, if you've never used Python's logging
 framework (or even if you have), here's a quick primer.
 
-.. _Python's own documentation: http://docs.python.org/library/logging.html
-
 The cast of players
 -------------------
 
Index: docs/topics/email.txt
===================================================================
--- docs/topics/email.txt	(révision 16590)
+++ docs/topics/email.txt	(copie de travail)
@@ -5,16 +5,14 @@
 .. module:: django.core.mail
    :synopsis: Helpers to easily send email.
 
-Although Python makes sending email relatively easy via the `smtplib
-library`_, Django provides a couple of light wrappers over it. These wrappers
-are provided to make sending email extra quick, to make it easy to test
-email sending during development, and to provide support for platforms that
-can't use SMTP.
+Although Python makes sending email relatively easy via the :mod:`smtplib module
+<smtplib>`, Django provides a couple of light wrappers over it. These wrappers
+are provided to make sending email extra quick, to make it easy to test email
+sending during development, and to provide support for platforms that can't use
+SMTP.
 
 The code lives in the ``django.core.mail`` module.
 
-.. _smtplib library: http://docs.python.org/library/smtplib.html
-
 Quick example
 =============
 
@@ -54,8 +52,9 @@
       member of ``recipient_list`` will see the other recipients in the "To:"
       field of the email message.
     * ``fail_silently``: A boolean. If it's ``False``, ``send_mail`` will raise
-      an ``smtplib.SMTPException``. See the `smtplib docs`_ for a list of
-      possible exceptions, all of which are subclasses of ``SMTPException``.
+      an ``smtplib.SMTPException``. See the :mod:`smtplib docs <smtplib>` for a
+      list of possible exceptions, all of which are subclasses of
+      ``SMTPException``.
     * ``auth_user``: The optional username to use to authenticate to the SMTP
       server. If this isn't provided, Django will use the value of the
       :setting:`EMAIL_HOST_USER` setting.
@@ -67,8 +66,6 @@
       See the documentation on :ref:`Email backends <topic-email-backends>`
       for more details.
 
-.. _smtplib docs: http://docs.python.org/library/smtplib.html
-
 send_mass_mail()
 ================
 
@@ -608,10 +605,8 @@
 :setting:`EMAIL_PORT` accordingly, and you are set.
 
 For a more detailed discussion of testing and processing of emails locally,
-see the Python documentation on the `SMTP Server`_.
+see the Python documentation on the :mod:`SMTP Server <smtpd>`.
 
-.. _SMTP Server: http://docs.python.org/library/smtpd.html
-
 SMTPConnection
 ==============
 
Index: docs/releases/1.3.txt
===================================================================
--- docs/releases/1.3.txt	(révision 16590)
+++ docs/releases/1.3.txt	(copie de travail)
@@ -664,11 +664,9 @@
 
 Code taking advantage of any of the features below will raise a
 ``PendingDeprecationWarning`` in Django 1.3. This warning will be
-silent by default, but may be turned on using Python's `warnings
-module`_, or by running Python with a ``-Wd`` or `-Wall` flag.
+silent by default, but may be turned on using Python's :mod:`warnings
+module <warnings>`, or by running Python with a ``-Wd`` or `-Wall` flag.
 
-.. _warnings module: http://docs.python.org/library/warnings.html
-
 In Django 1.4, these warnings will become a ``DeprecationWarning``,
 which is *not* silent. In Django 1.5 support for these features will
 be removed entirely.
Index: docs/releases/1.3-alpha-1.txt
===================================================================
--- docs/releases/1.3-alpha-1.txt	(révision 16590)
+++ docs/releases/1.3-alpha-1.txt	(copie de travail)
@@ -279,11 +279,9 @@
 
 Code taking advantage of any of the features below will raise a
 ``PendingDeprecationWarning`` in Django 1.3. This warning will be
-silent by default, but may be turned on using Python's `warnings
-module`_, or by running Python with a ``-Wd`` or `-Wall` flag.
+silent by default, but may be turned on using Python's :mod:`warnings
+module <warnings>`, or by running Python with a ``-Wd`` or `-Wall` flag.
 
-.. _warnings module: http://docs.python.org/library/warnings.html
-
 In Django 1.4, these warnings will become a ``DeprecationWarning``,
 which is *not* silent. In Django 1.5 support for these features will
 be removed entirely.
Index: docs/releases/0.96.txt
===================================================================
--- docs/releases/0.96.txt	(révision 16590)
+++ docs/releases/0.96.txt	(copie de travail)
@@ -216,8 +216,8 @@
 ------------------
 
 Django now includes a test framework so you can start transmuting fear into
-boredom (with apologies to Kent Beck). You can write tests based on doctest_
-or unittest_ and test your views with a simple test client.
+boredom (with apologies to Kent Beck). You can write tests based on
+:mod:`doctest` or :mod:`unittest` and test your views with a simple test client.
 
 There is also new support for "fixtures" -- initial data, stored in any of the
 supported `serialization formats`_, that will be loaded into your database at the
@@ -225,8 +225,6 @@
 
 See `the testing documentation`_ for the full details.
 
-.. _doctest: http://docs.python.org/library/doctest.html
-.. _unittest: http://docs.python.org/library/unittest.html
 .. _the testing documentation: http://www.djangoproject.com/documentation/0.96/testing/
 .. _serialization formats: http://www.djangoproject.com/documentation/0.96/serialization/
 
Index: docs/releases/1.2.txt
===================================================================
--- docs/releases/1.2.txt	(révision 16590)
+++ docs/releases/1.2.txt	(copie de travail)
@@ -764,11 +764,9 @@
 
 Code taking advantage of any of the features below will raise a
 ``PendingDeprecationWarning`` in Django 1.2. This warning will be
-silent by default, but may be turned on using Python's `warnings
-module`_, or by running Python with a ``-Wd`` or `-Wall` flag.
+silent by default, but may be turned on using Python's :mod:`warnings
+module <warnings>`, or by running Python with a ``-Wd`` or `-Wall` flag.
 
-.. _warnings module: http://docs.python.org/library/warnings.html
-
 In Django 1.3, these warnings will become a ``DeprecationWarning``,
 which is *not* silent. In Django 1.4 support for these features will
 be removed entirely.
Index: docs/ref/models/querysets.txt
===================================================================
--- docs/ref/models/querysets.txt	(révision 16590)
+++ docs/ref/models/querysets.txt	(copie de travail)
@@ -81,7 +81,7 @@
 Pickling QuerySets
 ------------------
 
-If you pickle_ a ``QuerySet``, this will force all the results to be loaded
+If you :mod:`pickle` a ``QuerySet``, this will force all the results to be loaded
 into memory prior to pickling. Pickling is usually used as a precursor to
 caching and when the cached queryset is reloaded, you want the results to
 already be present and ready for use (reading from the database can take some
@@ -112,8 +112,6 @@
 	Django version N+1. Pickles should not be used as part of a long-term
 	archival strategy.
 
-.. _pickle: http://docs.python.org/library/pickle.html
-
 .. _queryset-api:
 
 QuerySet API
Index: docs/ref/models/fields.txt
===================================================================
--- docs/ref/models/fields.txt	(révision 16590)
+++ docs/ref/models/fields.txt	(copie de travail)
@@ -500,9 +500,9 @@
     setting to determine the value of the :attr:`~django.core.files.File.url`
     attribute.
 
-    This path may contain `strftime formatting`_, which will be replaced by the
-    date/time of the file upload (so that uploaded files don't fill up the given
-    directory).
+    This path may contain :func:`strftime formatting <time.strftime>`, which
+    will be replaced by the date/time of the file upload (so that uploaded files
+    don't fill up the given directory).
 
     This may also be a callable, such as a function, which will be called to
     obtain the upload path, including the filename. This callable must be able
@@ -560,10 +560,10 @@
 
 For example, say your :setting:`MEDIA_ROOT` is set to ``'/home/media'``, and
 :attr:`~FileField.upload_to` is set to ``'photos/%Y/%m/%d'``. The ``'%Y/%m/%d'``
-part of :attr:`~FileField.upload_to` is `strftime formatting`_; ``'%Y'`` is the
-four-digit year, ``'%m'`` is the two-digit month and ``'%d'`` is the two-digit
-day. If you upload a file on Jan. 15, 2007, it will be saved in the directory
-``/home/media/photos/2007/01/15``.
+part of :attr:`~FileField.upload_to` is :func:`strftime formatting
+<time.strftime>`; ``'%Y'`` is the four-digit year, ``'%m'`` is the two-digit
+month and ``'%d'`` is the two-digit day. If you upload a file on Jan. 15, 2007,
+it will be saved in the directory ``/home/media/photos/2007/01/15``.
 
 If you wanted to retrieve the uploaded file's on-disk filename, or the file's
 size, you could use the :attr:`~django.core.files.File.name` and
@@ -595,8 +595,6 @@
 created as ``varchar(100)`` columns in your database. As with other fields, you
 can change the maximum length using the :attr:`~CharField.max_length` argument.
 
-.. _`strftime formatting`: http://docs.python.org/library/time.html#time.strftime
-
 FileField and FieldFile
 ~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -712,11 +710,8 @@
     represent those numbers differently. ``FloatField`` uses Python's ``float``
     type internally, while ``DecimalField`` uses Python's ``Decimal`` type. For
     information on the difference between the two, see Python's documentation on
-    `Decimal fixed point and floating point arithmetic`_.
+    :mod:`Decimal fixed point and floating point arithmetic <decimal>`.
 
-.. _Decimal fixed point and floating point arithmetic: http://docs.python.org/library/decimal.html
-
-
 ``ImageField``
 --------------
 
Index: docs/ref/generic-views.txt
===================================================================
--- docs/ref/generic-views.txt	(révision 16590)
+++ docs/ref/generic-views.txt	(copie de travail)
@@ -346,11 +346,11 @@
 
 **Optional arguments:**
 
-    * ``month_format``: A format string that regulates what format the
-      ``month`` parameter uses. This should be in the syntax accepted by
-      Python's ``time.strftime``. (See the `strftime docs`_.) It's set to
-      ``"%b"`` by default, which is a three-letter month abbreviation. To
-      change it to use numbers, use ``"%m"``.
+    * ``month_format``: A format string that regulates what format the ``month``
+      parameter uses. This should be in the syntax accepted by Python's
+      :func:`time.strftime``. It's set to ``"%b"`` by default, which is a
+      three-letter month abbreviation. To change it to use numbers, use
+      ``"%m"``.
 
     * ``template_name``: The full name of a template to use in rendering the
       page. This lets you override the default template name (see below).
@@ -415,8 +415,6 @@
       is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
       this variable's name will be ``foo_list``.
 
-.. _strftime docs: http://docs.python.org/library/time.html#time.strftime
-
 ``django.views.generic.date_based.archive_week``
 ------------------------------------------------
 
@@ -516,11 +514,11 @@
 
 **Optional arguments:**
 
-    * ``month_format``: A format string that regulates what format the
-      ``month`` parameter uses. This should be in the syntax accepted by
-      Python's ``time.strftime``. (See the `strftime docs`_.) It's set to
-      ``"%b"`` by default, which is a three-letter month abbreviation. To
-      change it to use numbers, use ``"%m"``.
+    * ``month_format``: A format string that regulates what format the ``month``
+      parameter uses. This should be in the syntax accepted by Python's
+      :func:`time.strftime`. It's set to ``"%b"`` by default, which is a
+      three-letter month abbreviation. To change it to use numbers, use
+      ``"%m"``.
 
     * ``day_format``: Like ``month_format``, but for the ``day`` parameter.
       It defaults to ``"%d"`` (day of the month as a decimal number, 01-31).
@@ -624,11 +622,11 @@
 
 **Optional arguments:**
 
-    * ``month_format``: A format string that regulates what format the
-      ``month`` parameter uses. This should be in the syntax accepted by
-      Python's ``time.strftime``. (See the `strftime docs`_.) It's set to
-      ``"%b"`` by default, which is a three-letter month abbreviation. To
-      change it to use numbers, use ``"%m"``.
+    * ``month_format``: A format string that regulates what format the ``month``
+      parameter uses. This should be in the syntax accepted by Python's
+      :func:`time.strftime`. It's set to ``"%b"`` by default, which is a
+      three-letter month abbreviation. To change it to use numbers, use
+      ``"%m"``.
 
     * ``day_format``: Like ``month_format``, but for the ``day`` parameter.
       It defaults to ``"%d"`` (day of the month as a decimal number, 01-31).
Index: docs/ref/class-based-views.txt
===================================================================
--- docs/ref/class-based-views.txt	(révision 16590)
+++ docs/ref/class-based-views.txt	(copie de travail)
@@ -586,11 +586,9 @@
 
     .. attribute:: year_format
 
-        The strftime_ format to use when parsing the year. By default, this is
-        ``'%Y'``.
+        The :func:`strftime<time.strftime>` format to use when parsing the year.
+        By default, this is ``'%Y'``.
 
-    .. _strftime: http://docs.python.org/library/time.html#time.strftime
-
     .. attribute:: year
 
         **Optional** The value for the year (as a string). By default, set to
@@ -598,7 +596,7 @@
 
     .. method:: get_year_format()
 
-        Returns the strftime_ format to use when parsing the year. Returns
+        Returns the :func:`strftime<time.strftime>` format to use when parsing the year. Returns
         :attr:`YearMixin.year_format` by default.
 
     .. method:: get_year()
@@ -621,7 +619,7 @@
 
     .. attribute:: month_format
 
-        The strftime_ format to use when parsing the month. By default, this is
+        The :func:`strftime<time.strftime>` format to use when parsing the month. By default, this is
         ``'%b'``.
 
     .. attribute:: month
@@ -631,7 +629,7 @@
 
     .. method:: get_month_format()
 
-        Returns the strftime_ format to use when parsing the month. Returns
+        Returns the :func:`strftime<time.strftime>` format to use when parsing the month. Returns
         :attr:`MonthMixin.month_format` by default.
 
     .. method:: get_month()
@@ -667,7 +665,7 @@
 
     .. attribute:: day_format
 
-        The strftime_ format to use when parsing the day. By default, this is
+        The :func:`strftime<time.strftime>` format to use when parsing the day. By default, this is
         ``'%d'``.
 
     .. attribute:: day
@@ -677,7 +675,7 @@
 
     .. method:: get_day_format()
 
-        Returns the strftime_ format to use when parsing the day. Returns
+        Returns the :func:`strftime<time.strftime>` format to use when parsing the day. Returns
         :attr:`DayMixin.day_format` by default.
 
     .. method:: get_day()
@@ -712,7 +710,7 @@
 
     .. attribute:: week_format
 
-        The strftime_ format to use when parsing the week. By default, this is
+        The :func:`strftime<time.strftime>` format to use when parsing the week. By default, this is
         ``'%U'``.
 
     .. attribute:: week
@@ -722,7 +720,7 @@
 
     .. method:: get_week_format()
 
-        Returns the strftime_ format to use when parsing the week. Returns
+        Returns the :func:`strftime<time.strftime>` format to use when parsing the week. Returns
         :attr:`WeekMixin.week_format` by default.
 
     .. method:: get_week()
Index: docs/ref/templates/builtins.txt
===================================================================
--- docs/ref/templates/builtins.txt	(révision 16590)
+++ docs/ref/templates/builtins.txt	(copie de travail)
@@ -1254,7 +1254,8 @@
     c                 ISO 8601 format. (Note: unlike others     ``2008-01-02T10:30:00.000123+02:00``,
                       formatters, such as "Z", "O" or "r",      or ``2008-01-02T10:30:00.000123`` if the datetime is naive
                       the "c" formatter will not add timezone
-                      offset if value is a `naive datetime`_.)
+                      offset if value is a :class:`naive
+                      datetime <datetime.tzinfo>`.)
     d                 Day of the month, 2 digits with           ``'01'`` to ``'31'``
                       leading zeros.
     D                 Day of the week, textual, 3 letters.      ``'Fri'``
@@ -1346,8 +1347,6 @@
 .. versionchanged:: 1.2
     Predefined formats can now be influenced by the current locale.
 
-.. _naive datetime: http://docs.python.org/library/datetime.html#datetime.tzinfo
-
 .. templatefilter:: default
 
 default
@@ -1815,10 +1814,8 @@
 pprint
 ^^^^^^
 
-A wrapper around `pprint.pprint`__ -- for debugging, really.
+A wrapper around :func:`pprint.pprint` -- for debugging, really.
 
-__ http://docs.python.org/library/pprint.html
-
 .. templatefilter:: random
 
 random
Index: docs/ref/exceptions.txt
===================================================================
--- docs/ref/exceptions.txt	(révision 16590)
+++ docs/ref/exceptions.txt	(copie de travail)
@@ -147,8 +147,6 @@
 Python Exceptions
 =================
 
-Django raises built-in Python exceptions when appropriate as well. See
-the Python `documentation`_ for further information on the built-in
-exceptions.
-
-.. _`documentation`: http://docs.python.org/lib/module-exceptions.html
+Django raises built-in Python exceptions when appropriate as well. See the
+:mod:`Python documentation <exceptions>` for further information on the
+built-in exceptions.
Index: docs/ref/contrib/gis/install.txt
===================================================================
--- docs/ref/contrib/gis/install.txt	(révision 16590)
+++ docs/ref/contrib/gis/install.txt	(copie de travail)
@@ -1235,13 +1235,17 @@
     postgres# CREATE DATABASE geodjango OWNER geodjango TEMPLATE template_postgis ENCODING 'utf8';
 
 .. rubric:: Footnotes
-.. [#] The datum shifting files are needed for converting data to and from certain projections.
-       For example, the PROJ.4 string for the `Google projection (900913) <http://spatialreference.org/ref/epsg/900913/proj4>`_
-       requires the ``null`` grid file only included in the extra datum shifting files.
-       It is easier to install the shifting files now, then to have debug a problem caused by their absence later.
-.. [#] Specifically, GeoDjango provides support for the `OGR <http://gdal.org/ogr>`_ library, a component of GDAL.
+.. [#] The datum shifting files are needed for converting data to and from
+       certain projections.
+       For example, the PROJ.4 string for the `Google projection (900913)
+       <http://spatialreference.org/ref/epsg/900913/proj4>`_ requires the
+       ``null`` grid file only included in the extra datum shifting files.
+       It is easier to install the shifting files now, then to have debug a
+       problem caused by their absence later.
+.. [#] Specifically, GeoDjango provides support for the `OGR
+       <http://gdal.org/ogr>`_ library, a component of GDAL.
 .. [#] See `GDAL ticket #2382 <http://trac.osgeo.org/gdal/ticket/2382>`_.
-.. [#] GeoDjango uses the `find_library <http://docs.python.org/library/ctypes.html#finding-shared-libraries>`_
-       routine from ``ctypes.util`` to locate shared libraries.
+.. [#] GeoDjango uses the :func:`find_library <ctypes.util.find_library>`
+       routine from :mod:`ctypes.util` to locate shared libraries.
 .. [#] The ``psycopg2`` Windows installers are packaged and maintained by
        `Jason Erickson <http://www.stickpeople.com/projects/python/win-psycopg/>`_.
Index: docs/ref/contrib/syndication.txt
===================================================================
--- docs/ref/contrib/syndication.txt	(révision 16590)
+++ docs/ref/contrib/syndication.txt	(copie de travail)
@@ -852,7 +852,7 @@
 
     All parameters, if given, should be Unicode objects, except:
 
-        * ``pubdate`` should be a `Python datetime object`_.
+        * ``pubdate`` should be a :class:`Python datetime object<datetime.datetime>`.
         * ``enclosure`` should be an instance of ``feedgenerator.Enclosure``.
         * ``categories`` should be a sequence of Unicode objects.
 
@@ -884,7 +884,6 @@
     </feed>
 
 .. _django/utils/feedgenerator.py: http://code.djangoproject.com/browser/django/trunk/django/utils/feedgenerator.py
-.. _Python datetime object: http://docs.python.org/library/datetime.html#datetime-objects
 
 .. currentmodule:: django.contrib.syndication
 
@@ -913,9 +912,9 @@
 
 ``SyndicationFeed.add_root_elements(self, handler)``
     Callback to add elements inside the root feed element
-    (``feed``/``channel``). ``handler`` is an `XMLGenerator`_ from Python's
-    built-in SAX library; you'll call methods on it to add to the XML
-    document in process.
+    (``feed``/``channel``). ``handler`` is an :class:`XMLGenerator
+    <xml.sax.saxutils.XMLGenerator>` from Python's built-in SAX library; you'll
+    call methods on it to add to the XML document in process.
 
 ``SyndicationFeed.item_attributes(self, item)``
     Return a ``dict`` of attributes to add to each item (``item``/``entry``)
@@ -945,5 +944,3 @@
 
 Obviously there's a lot more work to be done for a complete custom feed class,
 but the above example should demonstrate the basic idea.
-
-.. _XMLGenerator: http://docs.python.org/dev/library/xml.sax.utils.html#xml.sax.saxutils.XMLGenerator
Index: docs/ref/request-response.txt
===================================================================
--- docs/ref/request-response.txt	(révision 16590)
+++ docs/ref/request-response.txt	(copie de travail)
@@ -645,8 +645,8 @@
     ``expires``, and the auto-calculation of ``max_age`` in such case
     was added. The ``httponly`` argument was also added.
 
-    Sets a cookie. The parameters are the same as in the `cookie Morsel`_
-    object in the Python standard library.
+    Sets a cookie. The parameters are the same as in the :class:`cookie Morsel
+    <Cookie.Morsel>` object in the Python standard library.
 
         * ``max_age`` should be a number of seconds, or ``None`` (default) if
           the cookie should last only as long as the client's browser session.
@@ -670,7 +670,6 @@
           risk of client side script accessing the protected cookie
           data.
 
-    .. _`cookie Morsel`: http://docs.python.org/library/cookie.html#Cookie.Morsel
     .. _HTTPOnly: http://www.owasp.org/index.php/HTTPOnly
 
 .. method:: HttpResponse.set_signed_cookie(key, value='', salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)
Index: docs/ref/django-admin.txt
===================================================================
--- docs/ref/django-admin.txt	(révision 16590)
+++ docs/ref/django-admin.txt	(copie de travail)
@@ -455,7 +455,7 @@
 .. django-admin-option:: --ignore
 
 Use the ``--ignore`` or ``-i`` option to ignore files or directories matching
-the given `glob-style pattern`_. Use multiple times to ignore more.
+the given :mod:`glob-style pattern <glob>`. Use multiple times to ignore more.
 
 These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'``
 
@@ -463,8 +463,6 @@
 
     django-admin.py makemessages --locale=en_US --ignore=apps/* --ignore=secret/*.html
 
-.. _`glob-style pattern`: http://docs.python.org/library/glob.html
-
 .. django-admin-option:: --no-default-ignore
 
 Use the ``--no-default-ignore`` option to disable the default values of
Index: docs/ref/settings.txt
===================================================================
--- docs/ref/settings.txt	(révision 16590)
+++ docs/ref/settings.txt	(copie de travail)
@@ -950,8 +950,8 @@
 Default: ``None``
 
 The numeric mode (i.e. ``0644``) to set newly uploaded files to. For
-more information about what these modes mean, see the `documentation for
-os.chmod`_
+more information about what these modes mean, see the documentation for
+:func:`os.chmod`.
 
 If this isn't given or is ``None``, you'll get operating-system
 dependent behavior. On most platforms, temporary files will have a mode
@@ -968,8 +968,6 @@
     get totally incorrect behavior.
 
 
-.. _documentation for os.chmod: http://docs.python.org/library/os.html#os.chmod
-
 .. setting:: FILE_UPLOAD_TEMP_DIR
 
 FILE_UPLOAD_TEMP_DIR
Index: docs/conf.py
===================================================================
--- docs/conf.py	(révision 16590)
+++ docs/conf.py	(copie de travail)
@@ -26,7 +26,7 @@
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ["djangodocs"]
+extensions = ["djangodocs", "sphinx.ext.intersphinx"]
 
 # Add any paths that contain templates here, relative to this directory.
 # templates_path = []
@@ -92,6 +92,13 @@
 # Note: exclude_dirnames is new in Sphinx 0.5
 exclude_dirnames = ['.svn']
 
+# Links to Python's docs should reference the most recent version of the 2.x
+# branch, which is located at this URL.
+intersphinx_mapping = {'python': ('http://docs.python.org', None)}
+
+# Python's docs don't change every week.
+intersphinx_cache_limit = 90 # days
+
 # -- Options for HTML output ---------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
