Permalink
Browse files

Fixed #14141: docs now use the :doc: construct for links between docu…

…ments.

Thanks, Ramiro Morales.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13608 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent 9edf9f7 commit 38f5bcf3a28bba77da6047a7133dd731a174ece7 jacob committed Aug 19, 2010
Showing with 1,222 additions and 1,525 deletions.
  1. +3 −3 docs/_ext/djangodocs.py
  2. +2 −4 docs/faq/admin.txt
  3. +1 −3 docs/faq/contributing.txt
  4. +4 −6 docs/faq/general.txt
  5. +0 −2 docs/faq/help.txt
  6. +0 −2 docs/faq/index.txt
  7. +4 −6 docs/faq/install.txt
  8. +2 −4 docs/faq/models.txt
  9. +0 −2 docs/faq/usage.txt
  10. +16 −16 docs/glossary.txt
  11. +1 −3 docs/howto/apache-auth.txt
  12. +0 −2 docs/howto/auth-remote-user.txt
  13. +2 −4 docs/howto/custom-file-storage.txt
  14. +3 −5 docs/howto/custom-management-commands.txt
  15. +12 −14 docs/howto/custom-model-fields.txt
  16. +2 −4 docs/howto/custom-template-tags.txt
  17. +3 −5 docs/howto/deployment/fastcgi.txt
  18. +4 −6 docs/howto/deployment/index.txt
  19. +4 −6 docs/howto/deployment/modpython.txt
  20. +0 −2 docs/howto/deployment/modwsgi.txt
  21. +2 −4 docs/howto/error-reporting.txt
  22. +1 −3 docs/howto/i18n.txt
  23. +1 −3 docs/howto/index.txt
  24. +7 −9 docs/howto/initial-data.txt
  25. +0 −2 docs/howto/jython.txt
  26. +1 −3 docs/howto/legacy-databases.txt
  27. +2 −4 docs/howto/outputting-csv.txt
  28. +1 −3 docs/howto/outputting-pdf.txt
  29. +2 −4 docs/howto/static-files.txt
  30. +104 −104 docs/index.txt
  31. +0 −2 docs/internals/committers.txt
  32. +10 −12 docs/internals/contributing.txt
  33. +1 −3 docs/internals/deprecation.txt
  34. +38 −12 docs/internals/documentation.txt
  35. +0 −2 docs/internals/index.txt
  36. +0 −2 docs/internals/release-process.txt
  37. +7 −9 docs/internals/svn.txt
  38. +0 −2 docs/intro/index.txt
  39. +10 −12 docs/intro/install.txt
  40. +12 −14 docs/intro/overview.txt
  41. +20 −22 docs/intro/tutorial01.txt
  42. +3 −5 docs/intro/tutorial02.txt
  43. +7 −9 docs/intro/tutorial03.txt
  44. +10 −12 docs/intro/tutorial04.txt
  45. +16 −18 docs/intro/whatsnext.txt
  46. +28 −30 docs/misc/api-stability.txt
  47. +0 −2 docs/misc/design-philosophies.txt
  48. +0 −2 docs/misc/distributions.txt
  49. +0 −2 docs/misc/index.txt
  50. +0 −2 docs/obsolete/admin-css.txt
  51. +0 −2 docs/obsolete/index.txt
  52. +3 −5 docs/ref/authbackends.txt
  53. +1 −3 docs/ref/contrib/admin/actions.txt
  54. +10 −12 docs/ref/contrib/admin/index.txt
  55. +1 −3 docs/ref/contrib/auth.txt
  56. +0 −2 docs/ref/contrib/comments/custom.txt
  57. +9 −11 docs/ref/contrib/comments/example.txt
  58. +2 −4 docs/ref/contrib/comments/forms.txt
  59. +6 −8 docs/ref/contrib/comments/index.txt
  60. +30 −32 docs/ref/contrib/comments/models.txt
  61. +0 −2 docs/ref/contrib/comments/moderation.txt
  62. +2 −4 docs/ref/contrib/comments/settings.txt
  63. +3 −5 docs/ref/contrib/comments/signals.txt
  64. +3 −5 docs/ref/contrib/comments/upgrade.txt
  65. +3 −5 docs/ref/contrib/contenttypes.txt
  66. +0 −2 docs/ref/contrib/csrf.txt
  67. +7 −9 docs/ref/contrib/databrowse.txt
  68. +4 −6 docs/ref/contrib/flatpages.txt
  69. +0 −2 docs/ref/contrib/formtools/form-preview.txt
  70. +3 −5 docs/ref/contrib/formtools/form-wizard.txt
  71. +0 −2 docs/ref/contrib/formtools/index.txt
  72. +1 −1 docs/ref/contrib/gis/admin.txt
  73. +1 −1 docs/ref/contrib/gis/commands.txt
  74. +22 −22 docs/ref/contrib/gis/db-api.txt
  75. +2 −2 docs/ref/contrib/gis/deployment.txt
  76. +4 −6 docs/ref/contrib/gis/feeds.txt
  77. +55 −55 docs/ref/contrib/gis/geoquerysets.txt
  78. +102 −102 docs/ref/contrib/gis/install.txt
  79. +46 −46 docs/ref/contrib/gis/layermapping.txt
  80. +11 −11 docs/ref/contrib/gis/measure.txt
  81. +20 −20 docs/ref/contrib/gis/model-api.txt
  82. +1 −1 docs/ref/contrib/gis/testing.txt
  83. +53 −53 docs/ref/contrib/gis/tutorial.txt
  84. +0 −2 docs/ref/contrib/humanize.txt
  85. +20 −22 docs/ref/contrib/index.txt
  86. +2 −4 docs/ref/contrib/localflavor.txt
  87. +6 −8 docs/ref/contrib/messages.txt
  88. +4 −6 docs/ref/contrib/redirects.txt
  89. +6 −8 docs/ref/contrib/sitemaps.txt
  90. +3 −5 docs/ref/contrib/sites.txt
  91. +8 −10 docs/ref/contrib/syndication.txt
  92. +2 −4 docs/ref/contrib/webdesign.txt
  93. +2 −4 docs/ref/databases.txt
  94. +11 −13 docs/ref/django-admin.txt
  95. +0 −2 docs/ref/exceptions.txt
  96. +2 −4 docs/ref/files/file.txt
  97. +0 −2 docs/ref/files/index.txt
  98. +0 −2 docs/ref/files/storage.txt
  99. +2 −4 docs/ref/forms/api.txt
  100. +4 −6 docs/ref/forms/fields.txt
  101. +1 −3 docs/ref/forms/index.txt
  102. +0 −2 docs/ref/forms/validation.txt
  103. +0 −2 docs/ref/forms/widgets.txt
  104. +14 −16 docs/ref/generic-views.txt
  105. +0 −2 docs/ref/index.txt
  106. +11 −13 docs/ref/middleware.txt
  107. +9 −11 docs/ref/models/fields.txt
  108. +1 −3 docs/ref/models/index.txt
  109. +11 −13 docs/ref/models/instances.txt
  110. +0 −2 docs/ref/models/options.txt
  111. +10 −12 docs/ref/models/querysets.txt
  112. +0 −2 docs/ref/models/relations.txt
  113. +4 −6 docs/ref/request-response.txt
  114. +45 −47 docs/ref/settings.txt
  115. +6 −8 docs/ref/signals.txt
  116. +8 −10 docs/ref/templates/api.txt
  117. +5 −7 docs/ref/templates/builtins.txt
  118. +1 −3 docs/ref/templates/index.txt
  119. +1 −3 docs/ref/unicode.txt
  120. +2 −4 docs/ref/utils.txt
  121. +2 −4 docs/ref/validators.txt
  122. +1 −3 docs/releases/0.95.txt
  123. +0 −2 docs/releases/0.96.txt
  124. +3 −5 docs/releases/1.0-alpha-1.txt
  125. +7 −9 docs/releases/1.0-alpha-2.txt
  126. +11 −13 docs/releases/1.0-beta-2.txt
  127. +6 −8 docs/releases/1.0-beta.txt
  128. +6 −6 docs/releases/1.0-porting-guide.txt
  129. +0 −2 docs/releases/1.0.1.txt
  130. +2 −4 docs/releases/1.0.2.txt
  131. +16 −18 docs/releases/1.0.txt
  132. +10 −12 docs/releases/1.1-alpha-1.txt
  133. +9 −11 docs/releases/1.1-beta-1.txt
  134. +3 −5 docs/releases/1.1-rc-1.txt
  135. +1 −3 docs/releases/1.1.2.txt
  136. +20 −22 docs/releases/1.1.txt
  137. +12 −14 docs/releases/1.2-alpha-1.txt
  138. +7 −9 docs/releases/1.2-beta-1.txt
  139. +4 −6 docs/releases/1.2-rc-1.txt
  140. +30 −32 docs/releases/1.2.txt
  141. +0 −2 docs/releases/1.3.txt
  142. +0 −2 docs/releases/index.txt
  143. +18 −20 docs/topics/auth.txt
  144. +2 −4 docs/topics/cache.txt
  145. +0 −2 docs/topics/conditional-view-processing.txt
  146. +2 −4 docs/topics/db/aggregation.txt
  147. +0 −2 docs/topics/db/index.txt
  148. +2 −4 docs/topics/db/managers.txt
  149. +8 −10 docs/topics/db/models.txt
  150. +0 −2 docs/topics/db/multi-db.txt
  151. +8 −10 docs/topics/db/optimization.txt
  152. +4 −6 docs/topics/db/queries.txt
  153. +2 −4 docs/topics/db/sql.txt
  154. +1 −3 docs/topics/db/transactions.txt
  155. +0 −2 docs/topics/email.txt
  156. +4 −6 docs/topics/files.txt
  157. +0 −1 docs/topics/forms/formsets.txt
  158. +6 −8 docs/topics/forms/index.txt
  159. +0 −2 docs/topics/forms/media.txt
  160. +3 −5 docs/topics/forms/modelforms.txt
  161. +4 −6 docs/topics/generic-views.txt
  162. +2 −4 docs/topics/http/file-uploads.txt
  163. +1 −3 docs/topics/http/generic-views.txt
  164. +0 −2 docs/topics/http/index.txt
  165. +6 −8 docs/topics/http/middleware.txt
  166. +4 −6 docs/topics/http/sessions.txt
  167. +0 −2 docs/topics/http/shortcuts.txt
  168. +3 −5 docs/topics/http/urls.txt
  169. +1 −3 docs/topics/http/views.txt
  170. +2 −4 docs/topics/i18n/deployment.txt
  171. +3 −5 docs/topics/i18n/index.txt
  172. +2 −4 docs/topics/i18n/internationalization.txt
  173. +1 −3 docs/topics/i18n/localization.txt
  174. +0 −2 docs/topics/index.txt
  175. +10 −12 docs/topics/install.txt
  176. +0 −2 docs/topics/pagination.txt
  177. +0 −2 docs/topics/serialization.txt
  178. +3 −5 docs/topics/settings.txt
  179. +3 −5 docs/topics/signals.txt
  180. +9 −11 docs/topics/templates.txt
  181. +6 −8 docs/topics/testing.txt
@@ -78,11 +78,11 @@ def run(self):
ret.append(node)
if not is_nextversion:
if len(self.arguments) == 1:
- linktext = 'Please, see the release notes <releases-%s>' % (arg0)
+ linktext = 'Please, see the release notes </releases/%s>' % (arg0)
try:
- xrefs = roles.XRefRole()('std:ref', linktext, linktext, self.lineno, self.state) # Sphinx >= 1.0
+ xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state) # Sphinx >= 1.0
except AttributeError:
- xrefs = roles.xfileref_role('ref', linktext, linktext, self.lineno, self.state) # Sphinx < 1.0
+ xrefs = roles.xfileref_role('doc', linktext, linktext, self.lineno, self.state) # Sphinx < 1.0
node.extend(xrefs[0])
node['version'] = arg0
else:
View
@@ -1,5 +1,3 @@
-.. _faq-admin:
-
FAQ: The admin
==============
@@ -32,7 +30,7 @@ How can I prevent the cache middleware from caching the admin site?
-------------------------------------------------------------------
Set the :setting:`CACHE_MIDDLEWARE_ANONYMOUS_ONLY` setting to ``True``. See the
-:ref:`cache documentation <topics-cache>` for more information.
+:doc:`cache documentation </topics/cache>` for more information.
How do I automatically set a field's value to the user who last edited the object in the admin?
-----------------------------------------------------------------------------------------------
@@ -91,5 +89,5 @@ We like it, but if you don't agree, you can modify the admin site's
presentation by editing the CSS stylesheet and/or associated image files. The
site is built using semantic HTML and plenty of CSS hooks, so any changes you'd
like to make should be possible by editing the stylesheet. We've got a
-:ref:`guide to the CSS used in the admin <obsolete-admin-css>` to get you started.
+:doc:`guide to the CSS used in the admin </obsolete/admin-css>` to get you started.
@@ -1,13 +1,11 @@
-.. _faq-contributing:
-
FAQ: Contributing code
======================
How can I get started contributing code to Django?
--------------------------------------------------
Thanks for asking! We've written an entire document devoted to this question.
-It's titled :ref:`Contributing to Django <internals-contributing>`.
+It's titled :doc:`Contributing to Django </internals/contributing>`.
I submitted a bug fix in the ticket system several weeks ago. Why are you ignoring my patch?
--------------------------------------------------------------------------------------------
View
@@ -1,5 +1,3 @@
-.. _faq-general:
-
FAQ: General
============
@@ -63,15 +61,15 @@ at any level -- database servers, caching servers or Web/application servers.
The framework cleanly separates components such as its database layer and
application layer. And it ships with a simple-yet-powerful
-:ref:`cache framework <topics-cache>`.
+:doc:`cache framework </topics/cache>`.
Who's behind this?
------------------
Django was originally developed at World Online, the Web department of a
newspaper in Lawrence, Kansas, USA. Django's now run by an international team of
-volunteers; you can read all about them over at the :ref:`list of committers
-<internals-committers>`
+volunteers; you can read all about them over at the :doc:`list of committers
+</internals/committers>`
Which sites use Django?
-----------------------
@@ -146,7 +144,7 @@ philosophies 100%.
Like we said: We're picky.
We've documented our philosophies on the
-:ref:`design philosophies page <misc-design-philosophies>`.
+:doc:`design philosophies page </misc/design-philosophies>`.
Is Django a content-management-system (CMS)?
--------------------------------------------
View
@@ -1,5 +1,3 @@
-.. _faq-help:
-
FAQ: Getting Help
=================
View
@@ -1,5 +1,3 @@
-.. _faq-index:
-
==========
Django FAQ
==========
View
@@ -1,15 +1,13 @@
-.. _faq-install:
-
FAQ: Installation
=================
How do I get started?
---------------------
#. `Download the code`_.
- #. Install Django (read the :ref:`installation guide <intro-install>`).
- #. Walk through the :ref:`tutorial <intro-tutorial01>`.
- #. Check out the rest of the :ref:`documentation <index>`, and `ask questions`_ if you
+ #. Install Django (read the :doc:`installation guide </intro/install>`).
+ #. Walk through the :doc:`tutorial </intro/tutorial01>`.
+ #. Check out the rest of the :doc:`documentation </index>`, and `ask questions`_ if you
run into trouble.
.. _`Download the code`: http://www.djangoproject.com/download/
@@ -26,7 +24,7 @@ For a development environment -- if you just want to experiment with Django --
you don't need to have a separate Web server installed; Django comes with its
own lightweight development server. For a production environment, Django
follows the WSGI_ spec, which means it can run on a variety of server
-platforms. See :ref:`Deploying Django <howto-deployment-index>` for some
+platforms. See :doc:`Deploying Django </howto/deployment/index>` for some
popular alternatives. Also, the `server arrangements wiki page`_ contains
details for several deployment strategies.
View
@@ -1,5 +1,3 @@
-.. _faq-models:
-
FAQ: Databases and models
=========================
@@ -30,7 +28,7 @@ backend, and not all backends provide a way to retrieve the SQL after quoting.
.. versionadded:: 1.2
-If you are using :ref:`multiple databases<topics-db-multi-db>`, you can use the
+If you are using :doc:`multiple databases</topics/db/multi-db>`, you can use the
same interface on each member of the ``connections`` dictionary::
>>> from django.db import connections
@@ -39,7 +37,7 @@ same interface on each member of the ``connections`` dictionary::
Can I use Django with a pre-existing database?
----------------------------------------------
-Yes. See :ref:`Integrating with a legacy database <howto-legacy-databases>`.
+Yes. See :doc:`Integrating with a legacy database </howto/legacy-databases>`.
If I make changes to a model, how do I update the database?
-----------------------------------------------------------
View
@@ -1,5 +1,3 @@
-.. _faq-usage:
-
FAQ: Using Django
=================
View
@@ -9,19 +9,19 @@ Glossary
field
An attribute on a :term:`model`; a given field usually maps directly to
a single database column.
-
- See :ref:`topics-db-models`.
+
+ See :doc:`/topics/db/models`.
generic view
A higher-order :term:`view` function that provides an abstract/generic
implementation of a common idiom or pattern found in view development.
-
- See :ref:`ref-generic-views`.
+
+ See :doc:`/ref/generic-views`.
model
Models store your application's data.
-
- See :ref:`topics-db-models`.
+
+ See :doc:`/topics/db/models`.
MTV
See :ref:`mtv`.
@@ -41,7 +41,7 @@ Glossary
property
Also known as "managed attributes", and a feature of Python since
version 2.2. From `the property documentation`__:
-
+
Properties are a neat way to implement attributes whose usage
resembles attribute access, but whose implementation uses method
calls. [...] You
@@ -56,26 +56,26 @@ Glossary
queryset
An object representing some set of rows to be fetched from the database.
-
- See :ref:`topics-db-queries`.
+
+ See :doc:`/topics/db/queries`.
slug
A short label for something, containing only letters, numbers,
underscores or hyphens. They're generally used in URLs. For
example, in a typical blog entry URL:
-
+
.. parsed-literal::
-
+
http://www.djangoproject.com/weblog/2008/apr/12/**spring**/
-
+
the last bit (``spring``) is the slug.
template
A chunk of text that acts as formatting for representing data. A
template helps to abstract the presentation of data from the data
itself.
-
- See :ref:`topics-templates`.
-
+
+ See :doc:`/topics/templates`.
+
view
- A function responsible for rending a page.
+ A function responsible for rending a page.
@@ -1,12 +1,10 @@
-.. _howto-apache-auth:
-
=========================================================
Authenticating against Django's user database from Apache
=========================================================
Since keeping multiple authentication databases in sync is a common problem when
dealing with Apache, you can configuring Apache to authenticate against Django's
-:ref:`authentication system <topics-auth>` directly. For example, you
+:doc:`authentication system </topics/auth>` directly. For example, you
could:
* Serve static/media files directly from Apache only to authenticated users.
@@ -1,5 +1,3 @@
-.. _howto-auth-remote-user:
-
====================================
Authentication using ``REMOTE_USER``
====================================
@@ -1,5 +1,3 @@
-.. _howto-custom-file-storage:
-
Writing a custom storage system
===============================
@@ -37,7 +35,7 @@ You'll need to follow these steps:
the ``path()`` method.
Your custom storage system may override any of the storage methods explained in
-:ref:`ref-files-storage`, but you **must** implement the following methods:
+:doc:`/ref/files/storage`, but you **must** implement the following methods:
* :meth:`Storage.delete`
* :meth:`Storage.exists`
@@ -63,7 +61,7 @@ backend storage system.
Called by ``Storage.save()``. The ``name`` will already have gone through
``get_valid_name()`` and ``get_available_name()``, and the ``content`` will be a
-``File`` object itself.
+``File`` object itself.
Should return the actual name of name of the file saved (usually the ``name``
passed in, but if the storage needs to change the file name return the new name
@@ -1,5 +1,3 @@
-.. _howto-custom-management-commands:
-
====================================
Writing custom django-admin commands
====================================
@@ -10,7 +8,7 @@ Applications can register their own actions with ``manage.py``. For example,
you might want to add a ``manage.py`` action for a Django app that you're
distributing. In this document, we will be building a custom ``closepoll``
command for the ``polls`` application from the
-:ref:`tutorial<intro-tutorial01>`.
+:doc:`tutorial</intro/tutorial01>`.
To do this, just add a ``management/commands`` directory to the application.
Each Python module in that directory will be auto-discovered and registered as
@@ -77,7 +75,7 @@ The new custom command can be called using ``python manage.py closepoll
The ``handle()`` method takes zero or more ``poll_ids`` and sets ``poll.opened``
to ``False`` for each one. If the user referenced any nonexistant polls, a
:class:`CommandError` is raised. The ``poll.opened`` attribute does not exist
-in the :ref:`tutorial<intro-tutorial01>` and was added to
+in the :doc:`tutorial</intro/tutorial01>` and was added to
``polls.models.Poll`` for this example.
The same ``closepoll`` could be easily modified to delete a given poll instead
@@ -99,7 +97,7 @@ must be added to :attr:`~BaseCommand.option_list` like this:
# ...
In addition to being able to add custom command line options, all
-:ref:`management commands<ref-django-admin>` can accept some
+:doc:`management commands</ref/django-admin>` can accept some
default options such as :djadminopt:`--verbosity` and :djadminopt:`--traceback`.
Command objects
@@ -1,5 +1,3 @@
-.. _howto-custom-model-fields:
-
===========================
Writing custom model fields
===========================
@@ -10,7 +8,7 @@ Writing custom model fields
Introduction
============
-The :ref:`model reference <topics-db-models>` documentation explains how to use
+The :doc:`model reference </topics/db/models>` documentation explains how to use
Django's standard field classes -- :class:`~django.db.models.CharField`,
:class:`~django.db.models.DateField`, etc. For many purposes, those classes are
all you'll need. Sometimes, though, the Django version won't meet your precise
@@ -109,7 +107,7 @@ What does a field class do?
---------------------------
All of Django's fields (and when we say *fields* in this document, we always
-mean model fields and not :ref:`form fields <ref-forms-fields>`) are subclasses
+mean model fields and not :doc:`form fields </ref/forms/fields>`) are subclasses
of :class:`django.db.models.Field`. Most of the information that Django records
about a field is common to all fields -- name, help text, uniqueness and so
forth. Storing all that information is handled by ``Field``. We'll get into the
@@ -124,7 +122,7 @@ when the model class is created (the precise details of how this is done are
unimportant here). This is because the field classes aren't necessary when
you're just creating and modifying attributes. Instead, they provide the
machinery for converting between the attribute value and what is stored in the
-database or sent to the :ref:`serializer <topics-serialization>`.
+database or sent to the :doc:`serializer </topics/serialization>`.
Keep this in mind when creating your own custom fields. The Django ``Field``
subclass you write provides the machinery for converting between your Python
@@ -209,8 +207,8 @@ parameters:
* :attr:`~django.db.models.Field.default`
* :attr:`~django.db.models.Field.editable`
* :attr:`~django.db.models.Field.serialize`: If ``False``, the field will
- not be serialized when the model is passed to Django's :ref:`serializers
- <topics-serialization>`. Defaults to ``True``.
+ not be serialized when the model is passed to Django's :doc:`serializers
+ </topics/serialization>`. Defaults to ``True``.
* :attr:`~django.db.models.Field.unique_for_date`
* :attr:`~django.db.models.Field.unique_for_month`
* :attr:`~django.db.models.Field.unique_for_year`
@@ -225,8 +223,8 @@ parameters:
inheritance. For advanced use only.
All of the options without an explanation in the above list have the same
-meaning they do for normal Django fields. See the :ref:`field documentation
-<ref-models-fields>` for examples and details.
+meaning they do for normal Django fields. See the :doc:`field documentation
+</ref/models/fields>` for examples and details.
The ``SubfieldBase`` metaclass
------------------------------
@@ -270,8 +268,8 @@ value. This means that whenever a value may be assigned to the field,
you need to ensure that it will be of the correct datatype, or that
you handle any exceptions.
-This is especially important if you use :ref:`ModelForms
-<topics-forms-modelforms>`. When saving a ModelForm, Django will use
+This is especially important if you use :doc:`ModelForms
+</topics/forms/modelforms>`. When saving a ModelForm, Django will use
form values to instantiate model instances. However, if the cleaned
form data can't be used as valid input to the field, the normal form
validation process will break.
@@ -611,8 +609,8 @@ All of the ``kwargs`` dictionary is passed directly to the form field's
:meth:`~django.forms.Field__init__` method. Normally, all you need to do is
set up a good default for the ``form_class`` argument and then delegate further
handling to the parent class. This might require you to write a custom form
-field (and even a form widget). See the :ref:`forms documentation
-<topics-forms-index>` for information about this, and take a look at the code in
+field (and even a form widget). See the :doc:`forms documentation
+</topics/forms/index>` for information about this, and take a look at the code in
:mod:`django.contrib.localflavor` for some examples of custom widgets.
Continuing our ongoing example, we can write the :meth:`formfield` method as::
@@ -721,7 +719,7 @@ Django provides a ``File`` class, which is used as a proxy to the file's
contents and operations. This can be subclassed to customize how the file is
accessed, and what methods are available. It lives at
``django.db.models.fields.files``, and its default behavior is explained in the
-:ref:`file documentation <ref-files-file>`.
+:doc:`file documentation </ref/files/file>`.
Once a subclass of ``File`` is created, the new ``FileField`` subclass must be
told to use it. To do so, simply assign the new ``File`` subclass to the special
Oops, something went wrong. Retry.

0 comments on commit 38f5bcf

Please sign in to comment.