From 97cb07c3a10ff0e584a260a7ee1001614691eb1d Mon Sep 17 00:00:00 2001
From: Jacob Kaplan-Moss <jacob@jacobian.org>
Date: Sat, 23 Aug 2008 22:25:40 +0000
Subject: [PATCH] Massive reorganization of the docs. See the new docs online
 at http://docs.djangoproject.com/.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8506 bcc190cf-cafb-0310-a4f2-bffc1f526a37
---
 AUTHORS                                       |    1 +
 docs/Makefile                                 |   18 +-
 docs/_ext/applyxrefs.py                       |   88 +
 docs/_ext/djangodocs.py                       |  146 +
 docs/_ext/literals_to_xrefs.py                |  171 ++
 docs/_static/default.css                      |    3 +
 docs/_static/djangodocs.css                   |  126 +
 docs/_static/docicons-behindscenes.gif        |  Bin 0 -> 1024 bytes
 docs/_static/docicons-note.gif                |  Bin 0 -> 632 bytes
 docs/_static/docicons-philosophy.gif          |  Bin 0 -> 799 bytes
 docs/_static/homepage.css                     |   22 +
 docs/_static/reset-fonts-grids.css            |    8 +
 docs/_templates/genindex.html                 |    4 +
 docs/_templates/layout.html                   |   87 +
 docs/_templates/modindex.html                 |    3 +
 docs/_templates/search.html                   |    3 +
 docs/api_stability.txt                        |  119 -
 docs/authentication.txt                       | 1173 --------
 docs/conf.py                                  |   31 +-
 docs/contents.txt                             |   36 +
 docs/contenttypes.txt                         |  297 --
 docs/db-api.txt                               | 2421 ----------------
 docs/documentation.txt                        |  138 -
 docs/faq.txt                                  |  744 -----
 docs/faq/admin.txt                            |  103 +
 docs/faq/contributing.txt                     |   30 +
 docs/faq/general.txt                          |  256 ++
 docs/faq/help.txt                             |   75 +
 docs/faq/index.txt                            |   16 +
 docs/faq/install.txt                          |  108 +
 docs/faq/models.txt                           |   94 +
 docs/faq/usage.txt                            |   65 +
 docs/files.txt                                |  388 ---
 docs/form_preview.txt                         |   95 -
 docs/form_wizard.txt                          |  304 --
 docs/forms.txt                                | 2468 -----------------
 docs/generic_views.txt                        | 1273 ---------
 docs/glossary.txt                             |   80 +
 .../apache-auth.txt}                          |   24 +-
 docs/howto/custom-file-storage.txt            |   78 +
 docs/howto/custom-management-commands.txt     |   33 +
 .../custom-model-fields.txt}                  |  366 +--
 .../custom-template-tags.txt}                 |  742 +----
 docs/{ => howto/deployment}/fastcgi.txt       |   83 +-
 docs/howto/deployment/index.txt               |   33 +
 docs/{ => howto/deployment}/modpython.txt     |   92 +-
 docs/howto/error-reporting.txt                |   65 +
 docs/howto/index.txt                          |   33 +
 docs/howto/initial-data.txt                   |  140 +
 docs/howto/legacy-databases.txt               |   67 +
 .../outputting-csv.txt}                       |   57 +-
 .../outputting-pdf.txt}                       |   36 +-
 .../static-files.txt}                         |   52 +-
 docs/index.txt                                |  264 +-
 docs/internals/_images/djangotickets.png      |  Bin 0 -> 52003 bytes
 docs/{ => internals}/contributing.txt         |   62 +-
 docs/internals/documentation.txt              |  204 ++
 docs/internals/index.txt                      |   22 +
 docs/intro/_images/admin01.png                |  Bin 0 -> 120593 bytes
 docs/intro/_images/admin02.png                |  Bin 0 -> 355419 bytes
 docs/intro/_images/admin02t.png               |  Bin 0 -> 24726 bytes
 docs/intro/_images/admin03.png                |  Bin 0 -> 415869 bytes
 docs/intro/_images/admin03t.png               |  Bin 0 -> 28131 bytes
 docs/intro/_images/admin04.png                |  Bin 0 -> 397310 bytes
 docs/intro/_images/admin04t.png               |  Bin 0 -> 22806 bytes
 docs/intro/_images/admin05.png                |  Bin 0 -> 28875 bytes
 docs/intro/_images/admin05t.png               |  Bin 0 -> 22754 bytes
 docs/intro/_images/admin06.png                |  Bin 0 -> 22780 bytes
 docs/intro/_images/admin06t.png               |  Bin 0 -> 18156 bytes
 docs/intro/_images/admin07.png                |  Bin 0 -> 19804 bytes
 docs/intro/_images/admin08.png                |  Bin 0 -> 31552 bytes
 docs/intro/_images/admin08t.png               |  Bin 0 -> 23883 bytes
 docs/intro/_images/admin09.png                |  Bin 0 -> 16318 bytes
 docs/intro/_images/admin10.png                |  Bin 0 -> 5486 bytes
 docs/intro/_images/admin11.png                |  Bin 0 -> 33563 bytes
 docs/intro/_images/admin11t.png               |  Bin 0 -> 26365 bytes
 docs/intro/_images/admin12.png                |  Bin 0 -> 12682 bytes
 docs/intro/_images/admin13.png                |  Bin 0 -> 22062 bytes
 docs/intro/_images/admin13t.png               |  Bin 0 -> 18690 bytes
 docs/intro/_images/admin14.png                |  Bin 0 -> 28987 bytes
 docs/intro/_images/admin14t.png               |  Bin 0 -> 23460 bytes
 docs/intro/index.txt                          |   38 +
 docs/intro/install.txt                        |   75 +
 docs/{ => intro}/overview.txt                 |   77 +-
 docs/{ => intro}/tutorial01.txt               |  450 +--
 docs/{ => intro}/tutorial02.txt               |  176 +-
 docs/{ => intro}/tutorial03.txt               |  244 +-
 docs/{ => intro}/tutorial04.txt               |  217 +-
 docs/intro/whatsnext.txt                      |  235 ++
 docs/legacy_databases.txt                     |   69 -
 docs/localflavor.txt                          |  733 -----
 docs/man/django-admin.1                       |    3 +-
 docs/middleware.txt                           |  288 --
 docs/misc/api-stability.txt                   |   95 +
 .../design-philosophies.txt}                  |   41 +-
 docs/{ => misc}/distributions.txt             |    8 +-
 docs/misc/index.txt                           |   14 +
 docs/model-api.txt                            | 2145 --------------
 docs/obsolete/_images/formrow.gif             |  Bin 0 -> 9156 bytes
 docs/obsolete/_images/module.gif              |  Bin 0 -> 5786 bytes
 docs/obsolete/_images/objecttools_01.gif      |  Bin 0 -> 1473 bytes
 docs/obsolete/_images/objecttools_02.gif      |  Bin 0 -> 1874 bytes
 .../{admin_css.txt => obsolete/admin-css.txt} |   31 +-
 docs/{oldforms.txt => obsolete/forms.txt}     |   30 +-
 docs/obsolete/index.txt                       |   16 +
 docs/obsolete/newforms-migration.txt          |   48 +
 docs/ref/contrib/_images/flatfiles_admin.png  |  Bin 0 -> 42243 bytes
 docs/ref/contrib/_images/users_changelist.png |  Bin 0 -> 59355 bytes
 docs/{ => ref/contrib}/admin.txt              |   55 +-
 docs/ref/contrib/auth.txt                     |    6 +
 docs/ref/contrib/contenttypes.txt             |  347 +++
 docs/{ => ref/contrib}/csrf.txt               |   11 +-
 docs/{ => ref/contrib}/databrowse.txt         |   46 +-
 docs/{ => ref/contrib}/flatpages.txt          |  104 +-
 docs/ref/contrib/formtools/form-preview.txt   |  110 +
 docs/ref/contrib/formtools/form-wizard.txt    |  316 +++
 docs/ref/contrib/formtools/index.txt          |   12 +
 docs/ref/contrib/humanize.txt                 |   91 +
 docs/{add_ons.txt => ref/contrib/index.txt}   |  164 +-
 docs/ref/contrib/localflavor.txt              |  651 +++++
 docs/{ => ref/contrib}/redirects.txt          |   41 +-
 docs/ref/contrib/sitemaps.txt                 |  343 +++
 docs/{ => ref/contrib}/sites.txt              |  189 +-
 .../contrib/syndication.txt}                  |  357 +--
 docs/{ => ref/contrib}/webdesign.txt          |   21 +-
 docs/{ => ref}/databases.txt                  |   52 +-
 docs/{ => ref}/django-admin.txt               |  225 +-
 docs/ref/files/file.txt                       |  117 +
 docs/ref/files/index.txt                      |   13 +
 docs/ref/files/storage.txt                    |   50 +
 docs/ref/forms/api.txt                        |  688 +++++
 docs/ref/forms/fields.txt                     |  751 +++++
 docs/ref/forms/index.txt                      |   14 +
 docs/ref/forms/validation.txt                 |  109 +
 docs/ref/forms/widgets.txt                    |  156 ++
 docs/ref/generic-views.txt                    | 1106 ++++++++
 docs/ref/index.txt                            |   21 +
 docs/ref/middleware.txt                       |  200 ++
 docs/ref/models/fields.txt                    |  902 ++++++
 docs/ref/models/index.txt                     |   15 +
 docs/ref/models/instances.txt                 |  430 +++
 docs/ref/models/options.txt                   |  175 ++
 docs/ref/models/querysets.txt                 | 1060 +++++++
 docs/ref/models/relations.txt                 |   77 +
 .../request-response.txt}                     |  481 ++--
 docs/{ => ref}/settings.txt                   |  603 ++--
 docs/ref/templates/api.txt                    |  612 ++++
 .../templates/builtins.txt}                   |  777 ++----
 docs/ref/templates/index.txt                  |   20 +
 docs/{ => ref}/unicode.txt                    |   42 +-
 .../0.95.txt}                                 |   12 +-
 .../0.96.txt}                                 |   14 +-
 .../1.0-alpha-1.txt}                          |    2 +
 .../1.0-alpha-2.txt}                          |   39 +-
 .../1.0-beta.txt}                             |   30 +-
 docs/releases/index.txt                       |   26 +
 docs/sitemaps.txt                             |  334 ---
 docs/topics/auth.txt                          | 1334 +++++++++
 docs/{ => topics}/cache.txt                   |   16 +-
 docs/topics/db/index.txt                      |   17 +
 docs/topics/db/managers.txt                   |  191 ++
 docs/topics/db/models.txt                     |  746 +++++
 docs/topics/db/queries.txt                    |  968 +++++++
 docs/topics/db/sql.txt                        |   35 +
 docs/{ => topics/db}/transactions.txt         |    2 +
 docs/{ => topics}/email.txt                   |   75 +-
 docs/topics/files.txt                         |  146 +
 docs/topics/forms/formsets.txt                |  329 +++
 docs/topics/forms/index.txt                   |  260 ++
 docs/topics/forms/media.txt                   |  311 +++
 docs/{ => topics/forms}/modelforms.txt        |   29 +-
 docs/topics/http/_images/middleware.png       |  Bin 0 -> 56301 bytes
 .../http/file-uploads.txt}                    |   31 +-
 docs/topics/http/generic-views.txt            |    7 +
 docs/topics/http/index.txt                    |   17 +
 docs/topics/http/middleware.txt               |  169 ++
 docs/{ => topics/http}/sessions.txt           |   12 +-
 docs/{ => topics/http}/shortcuts.txt          |   31 +-
 .../http/urls.txt}                            |   64 +-
 docs/topics/http/views.txt                    |  186 ++
 docs/{ => topics}/i18n.txt                    |   90 +-
 docs/topics/index.txt                         |   25 +
 docs/{ => topics}/install.txt                 |   62 +-
 docs/{ => topics}/pagination.txt              |  120 +-
 docs/{ => topics}/serialization.txt           |   28 +-
 docs/topics/settings.txt                      |  253 ++
 docs/topics/templates.txt                     |  644 +++++
 docs/{ => topics}/testing.txt                 |  277 +-
 188 files changed, 19913 insertions(+), 17059 deletions(-)
 create mode 100644 docs/_ext/applyxrefs.py
 create mode 100644 docs/_ext/djangodocs.py
 create mode 100644 docs/_ext/literals_to_xrefs.py
 create mode 100644 docs/_static/default.css
 create mode 100644 docs/_static/djangodocs.css
 create mode 100644 docs/_static/docicons-behindscenes.gif
 create mode 100644 docs/_static/docicons-note.gif
 create mode 100644 docs/_static/docicons-philosophy.gif
 create mode 100644 docs/_static/homepage.css
 create mode 100644 docs/_static/reset-fonts-grids.css
 create mode 100644 docs/_templates/genindex.html
 create mode 100644 docs/_templates/layout.html
 create mode 100644 docs/_templates/modindex.html
 create mode 100644 docs/_templates/search.html
 delete mode 100644 docs/api_stability.txt
 delete mode 100644 docs/authentication.txt
 create mode 100644 docs/contents.txt
 delete mode 100644 docs/contenttypes.txt
 delete mode 100644 docs/db-api.txt
 delete mode 100644 docs/documentation.txt
 delete mode 100644 docs/faq.txt
 create mode 100644 docs/faq/admin.txt
 create mode 100644 docs/faq/contributing.txt
 create mode 100644 docs/faq/general.txt
 create mode 100644 docs/faq/help.txt
 create mode 100644 docs/faq/index.txt
 create mode 100644 docs/faq/install.txt
 create mode 100644 docs/faq/models.txt
 create mode 100644 docs/faq/usage.txt
 delete mode 100644 docs/files.txt
 delete mode 100644 docs/form_preview.txt
 delete mode 100644 docs/form_wizard.txt
 delete mode 100644 docs/forms.txt
 delete mode 100644 docs/generic_views.txt
 create mode 100644 docs/glossary.txt
 rename docs/{apache_auth.txt => howto/apache-auth.txt} (91%)
 create mode 100644 docs/howto/custom-file-storage.txt
 create mode 100644 docs/howto/custom-management-commands.txt
 rename docs/{custom_model_fields.txt => howto/custom-model-fields.txt} (65%)
 rename docs/{templates_python.txt => howto/custom-template-tags.txt} (55%)
 rename docs/{ => howto/deployment}/fastcgi.txt (86%)
 create mode 100644 docs/howto/deployment/index.txt
 rename docs/{ => howto/deployment}/modpython.txt (83%)
 create mode 100644 docs/howto/error-reporting.txt
 create mode 100644 docs/howto/index.txt
 create mode 100644 docs/howto/initial-data.txt
 create mode 100644 docs/howto/legacy-databases.txt
 rename docs/{outputting_csv.txt => howto/outputting-csv.txt} (72%)
 rename docs/{outputting_pdf.txt => howto/outputting-pdf.txt} (85%)
 rename docs/{static_files.txt => howto/static-files.txt} (72%)
 create mode 100644 docs/internals/_images/djangotickets.png
 rename docs/{ => internals}/contributing.txt (97%)
 create mode 100644 docs/internals/documentation.txt
 create mode 100644 docs/internals/index.txt
 create mode 100644 docs/intro/_images/admin01.png
 create mode 100644 docs/intro/_images/admin02.png
 create mode 100644 docs/intro/_images/admin02t.png
 create mode 100644 docs/intro/_images/admin03.png
 create mode 100644 docs/intro/_images/admin03t.png
 create mode 100644 docs/intro/_images/admin04.png
 create mode 100644 docs/intro/_images/admin04t.png
 create mode 100644 docs/intro/_images/admin05.png
 create mode 100644 docs/intro/_images/admin05t.png
 create mode 100644 docs/intro/_images/admin06.png
 create mode 100644 docs/intro/_images/admin06t.png
 create mode 100644 docs/intro/_images/admin07.png
 create mode 100644 docs/intro/_images/admin08.png
 create mode 100644 docs/intro/_images/admin08t.png
 create mode 100644 docs/intro/_images/admin09.png
 create mode 100644 docs/intro/_images/admin10.png
 create mode 100644 docs/intro/_images/admin11.png
 create mode 100644 docs/intro/_images/admin11t.png
 create mode 100644 docs/intro/_images/admin12.png
 create mode 100644 docs/intro/_images/admin13.png
 create mode 100644 docs/intro/_images/admin13t.png
 create mode 100644 docs/intro/_images/admin14.png
 create mode 100644 docs/intro/_images/admin14t.png
 create mode 100644 docs/intro/index.txt
 create mode 100644 docs/intro/install.txt
 rename docs/{ => intro}/overview.txt (81%)
 rename docs/{ => intro}/tutorial01.txt (51%)
 rename docs/{ => intro}/tutorial02.txt (72%)
 rename docs/{ => intro}/tutorial03.txt (65%)
 rename docs/{ => intro}/tutorial04.txt (52%)
 create mode 100644 docs/intro/whatsnext.txt
 delete mode 100644 docs/legacy_databases.txt
 delete mode 100644 docs/localflavor.txt
 delete mode 100644 docs/middleware.txt
 create mode 100644 docs/misc/api-stability.txt
 rename docs/{design_philosophies.txt => misc/design-philosophies.txt} (93%)
 rename docs/{ => misc}/distributions.txt (95%)
 create mode 100644 docs/misc/index.txt
 delete mode 100644 docs/model-api.txt
 create mode 100644 docs/obsolete/_images/formrow.gif
 create mode 100644 docs/obsolete/_images/module.gif
 create mode 100644 docs/obsolete/_images/objecttools_01.gif
 create mode 100644 docs/obsolete/_images/objecttools_02.gif
 rename docs/{admin_css.txt => obsolete/admin-css.txt} (89%)
 rename docs/{oldforms.txt => obsolete/forms.txt} (97%)
 create mode 100644 docs/obsolete/index.txt
 create mode 100644 docs/obsolete/newforms-migration.txt
 create mode 100644 docs/ref/contrib/_images/flatfiles_admin.png
 create mode 100644 docs/ref/contrib/_images/users_changelist.png
 rename docs/{ => ref/contrib}/admin.txt (95%)
 create mode 100644 docs/ref/contrib/auth.txt
 create mode 100644 docs/ref/contrib/contenttypes.txt
 rename docs/{ => ref/contrib}/csrf.txt (90%)
 rename docs/{ => ref/contrib}/databrowse.txt (58%)
 rename docs/{ => ref/contrib}/flatpages.txt (51%)
 create mode 100644 docs/ref/contrib/formtools/form-preview.txt
 create mode 100644 docs/ref/contrib/formtools/form-wizard.txt
 create mode 100644 docs/ref/contrib/formtools/index.txt
 create mode 100644 docs/ref/contrib/humanize.txt
 rename docs/{add_ons.txt => ref/contrib/index.txt} (53%)
 create mode 100644 docs/ref/contrib/localflavor.txt
 rename docs/{ => ref/contrib}/redirects.txt (66%)
 create mode 100644 docs/ref/contrib/sitemaps.txt
 rename docs/{ => ref/contrib}/sites.txt (60%)
 rename docs/{syndication_feeds.txt => ref/contrib/syndication.txt} (72%)
 rename docs/{ => ref/contrib}/webdesign.txt (74%)
 rename docs/{ => ref}/databases.txt (91%)
 rename docs/{ => ref}/django-admin.txt (85%)
 create mode 100644 docs/ref/files/file.txt
 create mode 100644 docs/ref/files/index.txt
 create mode 100644 docs/ref/files/storage.txt
 create mode 100644 docs/ref/forms/api.txt
 create mode 100644 docs/ref/forms/fields.txt
 create mode 100644 docs/ref/forms/index.txt
 create mode 100644 docs/ref/forms/validation.txt
 create mode 100644 docs/ref/forms/widgets.txt
 create mode 100644 docs/ref/generic-views.txt
 create mode 100644 docs/ref/index.txt
 create mode 100644 docs/ref/middleware.txt
 create mode 100644 docs/ref/models/fields.txt
 create mode 100644 docs/ref/models/index.txt
 create mode 100644 docs/ref/models/instances.txt
 create mode 100644 docs/ref/models/options.txt
 create mode 100644 docs/ref/models/querysets.txt
 create mode 100644 docs/ref/models/relations.txt
 rename docs/{request_response.txt => ref/request-response.txt} (51%)
 rename docs/{ => ref}/settings.txt (65%)
 create mode 100644 docs/ref/templates/api.txt
 rename docs/{templates.txt => ref/templates/builtins.txt} (63%)
 create mode 100644 docs/ref/templates/index.txt
 rename docs/{ => ref}/unicode.txt (92%)
 rename docs/{release_notes_0.95.txt => releases/0.95.txt} (97%)
 rename docs/{release_notes_0.96.txt => releases/0.96.txt} (95%)
 rename docs/{release_notes_1.0_alpha.txt => releases/1.0-alpha-1.txt} (99%)
 rename docs/{release_notes_1.0_alpha_2.txt => releases/1.0-alpha-2.txt} (81%)
 rename docs/{release_notes_1.0_beta_1.txt => releases/1.0-beta.txt} (86%)
 create mode 100644 docs/releases/index.txt
 delete mode 100644 docs/sitemaps.txt
 create mode 100644 docs/topics/auth.txt
 rename docs/{ => topics}/cache.txt (98%)
 create mode 100644 docs/topics/db/index.txt
 create mode 100644 docs/topics/db/managers.txt
 create mode 100644 docs/topics/db/models.txt
 create mode 100644 docs/topics/db/queries.txt
 create mode 100644 docs/topics/db/sql.txt
 rename docs/{ => topics/db}/transactions.txt (99%)
 rename docs/{ => topics}/email.txt (88%)
 create mode 100644 docs/topics/files.txt
 create mode 100644 docs/topics/forms/formsets.txt
 create mode 100644 docs/topics/forms/index.txt
 create mode 100644 docs/topics/forms/media.txt
 rename docs/{ => topics/forms}/modelforms.txt (97%)
 create mode 100644 docs/topics/http/_images/middleware.png
 rename docs/{upload_handling.txt => topics/http/file-uploads.txt} (94%)
 create mode 100644 docs/topics/http/generic-views.txt
 create mode 100644 docs/topics/http/index.txt
 create mode 100644 docs/topics/http/middleware.txt
 rename docs/{ => topics/http}/sessions.txt (97%)
 rename docs/{ => topics/http}/shortcuts.txt (82%)
 rename docs/{url_dispatch.txt => topics/http/urls.txt} (92%)
 create mode 100644 docs/topics/http/views.txt
 rename docs/{ => topics}/i18n.txt (94%)
 create mode 100644 docs/topics/index.txt
 rename docs/{ => topics}/install.txt (88%)
 rename docs/{ => topics}/pagination.txt (62%)
 rename docs/{ => topics}/serialization.txt (91%)
 create mode 100644 docs/topics/settings.txt
 create mode 100644 docs/topics/templates.txt
 rename docs/{ => topics}/testing.txt (82%)

diff --git a/AUTHORS b/AUTHORS
index ea83eb92db..1137b7cb8e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -67,6 +67,7 @@ answer newbie questions, and generally made Django that much better:
     Jiri Barton
     Ned Batchelder <http://www.nedbatchelder.com/>
     batiste@dosimple.ch
+    Batman
     Shannon -jj Behrens <http://jjinux.blogspot.com/>
     Esdras Beleza <linux@esdrasbeleza.com>
     Chris Bennett <chrisrbennett@yahoo.com>
diff --git a/docs/Makefile b/docs/Makefile
index f79d4299d5..e9c11d0676 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -11,12 +11,12 @@ PAPEROPT_a4     = -D latex_paper_size=a4
 PAPEROPT_letter = -D latex_paper_size=letter
 ALLSPHINXOPTS   = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
 
-.PHONY: help clean html web htmlhelp latex changes linkcheck
+.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
 
 help:
 	@echo "Please use \`make <target>' where <target> is one of"
 	@echo "  html      to make standalone HTML files"
-	@echo "  web       to make files usable by Sphinx.web"
+	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
 	@echo "  htmlhelp  to make HTML files and a HTML help project"
 	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
 	@echo "  changes   to make an overview over all changed/added/deprecated items"
@@ -31,13 +31,15 @@ html:
 	@echo
 	@echo "Build finished. The HTML pages are in _build/html."
 
-web:
-	mkdir -p _build/web _build/doctrees
-	$(SPHINXBUILD) -b web $(ALLSPHINXOPTS) _build/web
+pickle:
+	mkdir -p _build/pickle _build/doctrees
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
 	@echo
-	@echo "Build finished; now you can run"
-	@echo "  python -m sphinx.web _build/web"
-	@echo "to start the server."
+	@echo "Build finished; now you can process the pickle files or run"
+	@echo "  sphinx-web _build/pickle"
+	@echo "to start the sphinx-web server."
+
+web: pickle
 
 htmlhelp:
 	mkdir -p _build/htmlhelp _build/doctrees
diff --git a/docs/_ext/applyxrefs.py b/docs/_ext/applyxrefs.py
new file mode 100644
index 0000000000..3809088c1f
--- /dev/null
+++ b/docs/_ext/applyxrefs.py
@@ -0,0 +1,88 @@
+"""Adds xref targets to the top of files."""
+
+import sys
+import os
+
+testing = False
+
+DONT_TOUCH = (
+        './index.txt',
+        )
+
+def target_name(fn):
+    if fn.endswith('.txt'):
+        fn = fn[:-4]
+    return '_' + fn.lstrip('./').replace('/', '-')
+
+def process_file(fn, lines):
+    lines.insert(0, '\n')
+    lines.insert(0, '.. %s:\n' % target_name(fn))
+    try:
+        f = open(fn, 'w')
+    except IOError:
+        print("Can't open %s for writing. Not touching it." % fn)
+        return
+    try:
+        f.writelines(lines)
+    except IOError:
+        print("Can't write to %s. Not touching it." % fn)
+    finally:
+        f.close()
+
+def has_target(fn):
+    try:
+        f = open(fn, 'r')
+    except IOError:
+        print("Can't open %s. Not touching it." % fn)
+        return (True, None)
+    readok = True
+    try:
+        lines = f.readlines()
+    except IOError:
+        print("Can't read %s. Not touching it." % fn)
+        readok = False
+    finally:
+        f.close()
+        if not readok:
+            return (True, None)
+
+    #print fn, len(lines)
+    if len(lines) < 1:
+        print("Not touching empty file %s." % fn)
+        return (True, None)
+    if lines[0].startswith('.. _'):
+        return (True, None)
+    return (False, lines)
+
+def main(argv=None):
+    if argv is None:
+        argv = sys.argv
+
+    if len(argv) == 1:
+        argv.extend('.')
+
+    files = []
+    for root in argv[1:]:
+        for (dirpath, dirnames, filenames) in os.walk(root):
+            files.extend([(dirpath, f) for f in filenames])
+    files.sort()
+    files = [os.path.join(p, fn) for p, fn in files if fn.endswith('.txt')]
+    #print files
+
+    for fn in files:
+        if fn in DONT_TOUCH:
+            print("Skipping blacklisted file %s." % fn)
+            continue
+
+        target_found, lines = has_target(fn)
+        if not target_found:
+            if testing:
+                print '%s: %s' % (fn, lines[0]),
+            else:
+                print "Adding xref to %s" % fn
+                process_file(fn, lines)
+        else:
+            print "Skipping %s: already has a xref" % fn
+
+if __name__ == '__main__':
+    sys.exit(main())
\ No newline at end of file
diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py
new file mode 100644
index 0000000000..2375be481d
--- /dev/null
+++ b/docs/_ext/djangodocs.py
@@ -0,0 +1,146 @@
+"""
+Sphinx plugins for Django documentation.
+"""
+
+import docutils.nodes
+import docutils.transforms
+import sphinx
+import sphinx.addnodes
+import sphinx.builder
+import sphinx.directives
+import sphinx.environment
+import sphinx.htmlwriter
+
+def setup(app):
+    app.add_crossref_type(
+        directivename = "setting",
+        rolename      = "setting",
+        indextemplate = "pair: %s; setting",
+    )
+    app.add_crossref_type(
+        directivename = "templatetag",
+        rolename      = "ttag",
+        indextemplate = "pair: %s; template tag"
+    )
+    app.add_crossref_type(
+        directivename = "templatefilter",
+        rolename      = "tfilter",
+        indextemplate = "pair: %s; template filter"
+    )
+    app.add_crossref_type(
+        directivename = "fieldlookup",
+        rolename      = "lookup",
+        indextemplate = "pair: %s, field lookup type",
+    )
+    app.add_description_unit(
+        directivename = "django-admin",
+        rolename      = "djadmin",
+        indextemplate = "pair: %s; django-admin command",
+        parse_node    = parse_django_admin_node,
+    )
+    app.add_description_unit(
+        directivename = "django-admin-option",
+        rolename      = "djadminopt",
+        indextemplate = "pair: %s; django-admin command-line option",
+        parse_node    = lambda env, sig, signode: sphinx.directives.parse_option_desc(signode, sig),
+    )
+    app.add_transform(SuppressBlockquotes)
+    
+    # Monkeypatch PickleHTMLBuilder so that it doesn't die in Sphinx 0.4.2
+    if sphinx.__version__ == '0.4.2':
+        monkeypatch_pickle_builder()
+                
+class SuppressBlockquotes(docutils.transforms.Transform):
+    """
+    Remove the default blockquotes that encase indented list, tables, etc.
+    """
+    default_priority = 300
+    
+    suppress_blockquote_child_nodes = (
+        docutils.nodes.bullet_list, 
+        docutils.nodes.enumerated_list, 
+        docutils.nodes.definition_list,
+        docutils.nodes.literal_block, 
+        docutils.nodes.doctest_block, 
+        docutils.nodes.line_block, 
+        docutils.nodes.table
+    )
+    
+    def apply(self):
+        for node in self.document.traverse(docutils.nodes.block_quote):
+            if len(node.children) == 1 and isinstance(node.children[0], self.suppress_blockquote_child_nodes):
+                node.replace_self(node.children[0])
+
+class DjangoHTMLTranslator(sphinx.htmlwriter.SmartyPantsHTMLTranslator):
+    """
+    Django-specific reST to HTML tweaks.
+    """
+
+    # Don't use border=1, which docutils does by default.
+    def visit_table(self, node):
+        self.body.append(self.starttag(node, 'table', CLASS='docutils'))
+        
+    # Give each section a unique ID -- nice for custom CSS hooks
+    # This is different on docutils 0.5 vs. 0.4...
+    
+    # The docutils 0.4 override.
+    if hasattr(sphinx.htmlwriter.SmartyPantsHTMLTranslator, 'start_tag_with_title'):
+        def start_tag_with_title(self, node, tagname, **atts):
+            node = {
+                'classes': node.get('classes', []), 
+                'ids': ['s-%s' % i for i in node.get('ids', [])]
+            }
+            return self.starttag(node, tagname, **atts)
+            
+    # The docutils 0.5 override.
+    else:        
+        def visit_section(self, node):
+            old_ids = node.get('ids', [])
+            node['ids'] = ['s-' + i for i in old_ids]
+            sphinx.htmlwriter.SmartyPantsHTMLTranslator.visit_section(self, node)
+            node['ids'] = old_ids
+
+def parse_django_admin_node(env, sig, signode):
+    command = sig.split(' ')[0]
+    env._django_curr_admin_command = command
+    title = "django-admin.py %s" % sig
+    signode += sphinx.addnodes.desc_name(title, title)
+    return sig
+
+def monkeypatch_pickle_builder():
+    import shutil
+    from os import path
+    try:
+        import cPickle as pickle
+    except ImportError:
+        import pickle
+    from sphinx.util.console import bold
+    
+    def handle_finish(self):
+        # dump the global context
+        outfilename = path.join(self.outdir, 'globalcontext.pickle')
+        f = open(outfilename, 'wb')
+        try:
+            pickle.dump(self.globalcontext, f, 2)
+        finally:
+            f.close()
+
+        self.info(bold('dumping search index...'))
+        self.indexer.prune(self.env.all_docs)
+        f = open(path.join(self.outdir, 'searchindex.pickle'), 'wb')
+        try:
+            self.indexer.dump(f, 'pickle')
+        finally:
+            f.close()
+
+        # copy the environment file from the doctree dir to the output dir
+        # as needed by the web app
+        shutil.copyfile(path.join(self.doctreedir, sphinx.builder.ENV_PICKLE_FILENAME),
+                        path.join(self.outdir, sphinx.builder.ENV_PICKLE_FILENAME))
+
+        # touch 'last build' file, used by the web application to determine
+        # when to reload its environment and clear the cache
+        open(path.join(self.outdir, sphinx.builder.LAST_BUILD_FILENAME), 'w').close()
+
+    sphinx.builder.PickleHTMLBuilder.handle_finish = handle_finish
+    
diff --git a/docs/_ext/literals_to_xrefs.py b/docs/_ext/literals_to_xrefs.py
new file mode 100644
index 0000000000..569193c72d
--- /dev/null
+++ b/docs/_ext/literals_to_xrefs.py
@@ -0,0 +1,171 @@
+"""
+Runs through a reST file looking for old-style literals, and helps replace them
+with new-style references.
+"""
+
+import re
+import sys
+import shelve
+
+refre = re.compile(r'``([^`\s]+?)``')
+
+ROLES = (
+    'attr',
+    'class',
+    "djadmin",
+    'data',
+    'exc',
+    'file',
+    'func',
+    'lookup',
+    'meth',
+    'mod' ,
+    "djadminopt",
+    "ref",
+    "setting",
+    "term",
+    "tfilter",
+    "ttag",
+    
+    # special
+    "skip"
+)
+
+ALWAYS_SKIP = [
+    "NULL",
+    "True",
+    "False",
+]
+
+def fixliterals(fname):
+    data = open(fname).read()
+    
+    last = 0
+    new = []
+    storage = shelve.open("/tmp/literals_to_xref.shelve")
+    lastvalues = storage.get("lastvalues", {})
+    
+    for m in refre.finditer(data):
+        
+        new.append(data[last:m.start()])
+        last = m.end()
+        
+        line_start = data.rfind("\n", 0, m.start())
+        line_end = data.find("\n", m.end())
+        prev_start = data.rfind("\n", 0, line_start)
+        next_end = data.find("\n", line_end + 1)
+        
+        # Skip always-skip stuff
+        if m.group(1) in ALWAYS_SKIP:
+            new.append(m.group(0))
+            continue
+            
+        # skip when the next line is a title
+        next_line = data[m.end():next_end].strip()
+        if next_line[0] in "!-/:-@[-`{-~" and all(c == next_line[0] for c in next_line):
+            new.append(m.group(0))
+            continue
+        
+        sys.stdout.write("\n"+"-"*80+"\n")
+        sys.stdout.write(data[prev_start+1:m.start()])
+        sys.stdout.write(colorize(m.group(0), fg="red"))
+        sys.stdout.write(data[m.end():next_end])
+        sys.stdout.write("\n\n")
+        
+        replace_type = None
+        while replace_type is None:
+            replace_type = raw_input(
+                colorize("Replace role: ", fg="yellow")
+            ).strip().lower()
+            if replace_type and replace_type not in ROLES:
+                replace_type = None
+        
+        if replace_type == "":
+            new.append(m.group(0))
+            continue
+            
+        if replace_type == "skip":
+            new.append(m.group(0))
+            ALWAYS_SKIP.append(m.group(1))
+            continue
+        
+        default = lastvalues.get(m.group(1), m.group(1))
+        if default.endswith("()") and replace_type in ("class", "func", "meth"):
+            default = default[:-2]        
+        replace_value = raw_input(
+            colorize("Text <target> [", fg="yellow") + default + colorize("]: ", fg="yellow")
+        ).strip()
+        if not replace_value: 
+            replace_value = default
+        new.append(":%s:`%s`" % (replace_type, replace_value))
+        lastvalues[m.group(1)] = replace_value
+    
+    new.append(data[last:])
+    open(fname, "w").write("".join(new))
+    
+    storage["lastvalues"] = lastvalues
+    storage.close()
+    
+#
+# The following is taken from django.utils.termcolors and is copied here to
+# avoid the dependancy.
+#
+
+
+def colorize(text='', opts=(), **kwargs):
+    """
+    Returns your text, enclosed in ANSI graphics codes.
+
+    Depends on the keyword arguments 'fg' and 'bg', and the contents of
+    the opts tuple/list.
+
+    Returns the RESET code if no parameters are given.
+
+    Valid colors:
+        'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
+
+    Valid options:
+        'bold'
+        'underscore'
+        'blink'
+        'reverse'
+        'conceal'
+        'noreset' - string will not be auto-terminated with the RESET code
+
+    Examples:
+        colorize('hello', fg='red', bg='blue', opts=('blink',))
+        colorize()
+        colorize('goodbye', opts=('underscore',))
+        print colorize('first line', fg='red', opts=('noreset',))
+        print 'this should be red too'
+        print colorize('and so should this')
+        print 'this should not be red'
+    """
+    color_names = ('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white')
+    foreground = dict([(color_names[x], '3%s' % x) for x in range(8)])
+    background = dict([(color_names[x], '4%s' % x) for x in range(8)])
+
+    RESET = '0'
+    opt_dict = {'bold': '1', 'underscore': '4', 'blink': '5', 'reverse': '7', 'conceal': '8'}
+
+    text = str(text)
+    code_list = []
+    if text == '' and len(opts) == 1 and opts[0] == 'reset':
+        return '\x1b[%sm' % RESET
+    for k, v in kwargs.iteritems():
+        if k == 'fg':
+            code_list.append(foreground[v])
+        elif k == 'bg':
+            code_list.append(background[v])
+    for o in opts:
+        if o in opt_dict:
+            code_list.append(opt_dict[o])
+    if 'noreset' not in opts:
+        text = text + '\x1b[%sm' % RESET
+    return ('\x1b[%sm' % ';'.join(code_list)) + text
+
+if __name__ == '__main__':
+    try:
+        fixliterals(sys.argv[1])
+    except (KeyboardInterrupt, SystemExit):
+        print
\ No newline at end of file
diff --git a/docs/_static/default.css b/docs/_static/default.css
new file mode 100644
index 0000000000..9dc69ee785
--- /dev/null
+++ b/docs/_static/default.css
@@ -0,0 +1,3 @@
+@import url(reset-fonts-grids.css);
+@import url(djangodocs.css);
+@import url(homepage.css);
\ No newline at end of file
diff --git a/docs/_static/djangodocs.css b/docs/_static/djangodocs.css
new file mode 100644
index 0000000000..940bab8388
--- /dev/null
+++ b/docs/_static/djangodocs.css
@@ -0,0 +1,126 @@
+/*** setup ***/
+html { background:#092e20;}
+body { font:12px/1.5 Verdana,sans-serif; background:#092e20; color: white;}
+#custom-doc { width:76.54em;*width:74.69em;min-width:995px; max-width:100em; margin:auto; text-align:left; padding-top:16px; margin-top:0;} 
+#hd { padding: 4px 0 12px 0; }
+#bd { background:#234F32; }
+#ft { color:#487858; font-size:90%; padding-bottom: 2em; }
+
+/*** links ***/
+a {text-decoration: none;}
+a img {border: none;}
+a:link, a:visited { color:#ffc757; }
+#bd a:link, #bd a:visited { color:#ab5603; text-decoration:underline; }
+#bd #sidebar a:link, #bd #sidebar a:visited { color:#ffc757; text-decoration:none; }
+a:hover { color:#ffe761; }
+#bd a:hover { background-color:#E0FFB8; color:#234f32; text-decoration:none; }
+#bd #sidebar a:hover { color:#ffe761; background:none; }
+h2 a, h3 a, h4 a { text-decoration:none !important; }
+a.reference em { font-style: normal; }
+
+/*** sidebar ***/
+#sidebar div.sphinxsidebarwrapper { font-size:92%; margin-right: 14px; }
+#sidebar h3, #sidebar h4 { color: white; font-size: 125%; }
+#sidebar a { color: white; }
+#sidebar ul ul { margin-top:0; margin-bottom:0; }
+#sidebar li { margin-top: 0.2em; margin-bottom: 0.2em; }
+
+/*** nav ***/
+div.nav { margin: 0; font-size: 11px; text-align: right; color: #487858;}
+#hd div.nav { margin-top: -27px; }
+#ft div.nav { margin-bottom: -18px; }
+#hd h1 a { color: white; }
+#global-nav { position:absolute; top:5px; margin-left: -5px; padding:7px 0; color:#263E2B; }
+#global-nav a:link, #global-nav a:visited {color:#487858;}
+#global-nav a {padding:0 4px;}
+#global-nav a.about {padding-left:0;}
+#global-nav:hover {color:#fff;}
+#global-nav:hover a:link, #global-nav:hover a:visited  { color:#ffc757; }
+
+/*** content ***/
+#yui-main div.yui-b { position: relative; }
+#yui-main div.yui-b { margin: 0 0 0 20px; background: white; color: black; padding: 0.3em 2em 1em 2em; }
+
+/*** basic styles ***/
+dd { margin-left:15px; }
+h1,h2,h3,h4 { margin-top:1em; font-family:"Trebuchet MS",sans-serif; font-weight:normal; }
+h1 { font-size:218%; margin-top:0.6em; margin-bottom:.4em; line-height:1.1em; }
+h2 { font-size:175%; margin-bottom:.6em; line-height:1.2em; color:#092e20; }
+h3 { font-size:150%; font-weight:bold; margin-bottom:.2em; color:#487858; }
+h4 { font-size:125%; font-weight:bold; margin-top:1.5em; margin-bottom:3px; }
+div.figure { text-align: center; }
+div.figure p.caption { font-size:1em; margin-top:0; margin-bottom:1.5em; color: #555;}
+hr { color:#ccc; background-color:#ccc; height:1px; border:0; }
+p, ul, dl { margin-top:.6em; margin-bottom:1em; padding-bottom: 0.1em;}
+#yui-main div.yui-b img { max-width: 50em; margin-left: auto; margin-right: auto; display: block; }
+caption { font-size:1em; font-weight:bold; margin-top:0.5em; margin-bottom:0.5em; margin-left: 2px; text-align: center; }
+blockquote { padding: 0 1em; margin: 1em 0; font:125%/1.2em "Trebuchet MS", sans-serif; color:#234f32; border-left:2px solid #94da3a; } 
+strong { font-weight: bold; }
+em { font-style: italic; }
+ins { font-weight: bold; text-decoration: none; }
+
+/*** lists ***/
+ul { padding-left:30px; }
+ol { padding-left:30px; }
+ol.arabic { list-style-type: decimal; }
+ul li { list-style-type:square; margin-bottom:.4em; }
+ol li { margin-bottom: .4em; }
+ul ul { padding-left:1.2em; }
+ul ul ul { padding-left:1em; }
+ul.linklist, ul.toc { padding-left:0; }
+ul.toc ul { margin-left:.6em; }
+ul.toc ul li { list-style-type:square; }
+ul.toc ul ul li { list-style-type:disc; }
+ul.linklist li, ul.toc li { list-style-type:none; }
+dt { font-weight:bold; margin-top:.5em; font-size:1.1em; }
+dd { margin-bottom:.8em; }
+ol.toc { margin-bottom: 2em; }
+ol.toc li { font-size:125%; padding: .5em; line-height:1.2em; clear: right; }
+ol.toc li.b { background-color: #E0FFB8; }
+ol.toc li a:hover { background-color: transparent !important; text-decoration: underline !important; }
+ol.toc span.release-date { color:#487858; float: right; font-size: 85%; padding-right: .5em; }
+ol.toc span.comment-count { font-size: 75%; color: #999; }
+
+/*** tables ***/
+table { color:#000; margin-bottom: 1em; width: 100%; }
+table.docutils td p { margin-top:0; margin-bottom:.5em; }
+table.docutils td, table.docutils th { border-bottom:1px solid #dfdfdf; padding:4px 2px;}
+table.docutils thead th { border-bottom:2px solid #dfdfdf; text-align:left; font-weight: bold; white-space: nowrap; }
+table.docutils thead th p { margin: 0; padding: 0; }
+table.docutils { border-collapse:collapse; }
+
+/*** code blocks ***/
+.literal { white-space:nowrap; }
+.literal { color:#234f32; }
+#sidebar .literal { color:white; background:transparent; font-size:11px; }
+h4 .literal { color: #234f32; font-size: 13px; }
+pre { font-size:small; background:#E0FFB8; border:1px solid #94da3a; border-width:1px 0; margin: 1em 0; padding: .3em .4em; overflow: hidden; line-height: 1.3em;}
+dt .literal, table .literal { background:none; }
+#bd a.reference { text-decoration: none; }
+#bd a.reference tt.literal { border-bottom: 1px #234f32 dotted; }
+ 
+/*** notes & admonitions ***/
+.note, .admonition { padding:.8em 1em .8em; margin: 1em 0; border:1px solid #94da3a; }
+.admonition-title { font-weight:bold; margin-top:0 !important; margin-bottom:0 !important;}
+.admonition .last { margin-bottom:0 !important; }
+.note, .admonition { padding-left:65px; background:url(docicons-note.gif) .8em .8em no-repeat;}
+div.admonition-philosophy { padding-left:65px; background:url(docicons-philosophy.gif) .8em .8em no-repeat;}
+div.admonition-behind-the-scenes { padding-left:65px; background:url(docicons-behindscenes.gif) .8em .8em no-repeat;}
+
+/*** p-links ***/
+a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; visibility: hidden; }
+h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; }
+
+/*** index ***/
+table.indextable td { text-align: left; vertical-align: top;}
+table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; }
+table.indextable tr.pcap { height: 10px; }
+table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2;}
+
+/*** page-specific overrides ***/
+div#contents ul { margin-bottom: 0;}
+div#contents ul li { margin-bottom: 0;}
+div#contents ul ul li { margin-top: 0.3em;}
+
+/*** IE hacks ***/
+* pre { width: 100%; }
\ No newline at end of file
diff --git a/docs/_static/docicons-behindscenes.gif b/docs/_static/docicons-behindscenes.gif
new file mode 100644
index 0000000000000000000000000000000000000000..921bc45c33dc92f33c5c0d4c1a56f78647e14b34
GIT binary patch
literal 1024
zcmV+b1poU-Nk%w1VJ`qL0M!5h2@M1#GZM+>qlv#mNoFK&nKh@@YFmIT5*i6NO&fr-
zK6j=%*6h0Y{PQkA78@oFQgbLkSs!GKF`3U(<nqzN;+VVNjL7AqpweEg*>&;x=)2&I
zoY7dL)MT{Wfq;O3#^jy9zrVucn5x%rvD<sD*>ylbK%bwVxZZ}ZudkrfUf<u}P*6~w
z$z>oQAd0t7zu}T#U|<js5by8rdZ#~ut4o#6O^m@vh^|)8&(8n=0RR90lFUZ{00000
z00000A^8LV00000EC2ui051S9000L6z@2bNEbcT6ONPg6@-h~N#z?JN83w0zYhX02
zVB=-7EpI26aF~KIySEsMnp%0=x0U&@k-hty248A?e}zneVT6Wd2Rad4f>nKsOa})%
z0{}WY3S3roZVC%-3!4ZCI;al>2mqZ-c}5g(3z`sang9S10}h*;qfK%}ZB7dT1Oq$|
zI=adS1i?%JI!p=$Jl8q_S{OwaThz^{0TDV5sM|~f1iC!t&6np}X+jNTTGSB%0SN;G
z;(T$-wCR8Z9Unrl0KkLXD<%^JF(|`~Ne2=eHjpr2gNKd;JW6e2r$b1HY9hHgVIXAE
z00<741?V6`fX$mCI4~nn00Jui2nSh&h`~_YBPRxqIDzmhK?|E6UKA+s0)+q&G&F50
zpf15C00y^7bArSPS8fwP2x#H!SA-G*JPatXQ^$h>1Fk7!imgl%Ed+ENAQ3l!j1wzX
zd=Ol7!ode#e;ruhOB2X4O0;k#ut7i#9VdvyKrlkU2x<cwIcV2xn<kZ8mN-$s?10U{
zGl-<np+Z0jUzeH${+Nxx!#4^vJyOeb1(6fHeb>@)Yn`)2Tmjtbi~}JN6Qq6fXjF~T
z7I+a#Z}6H>A!7j?B0n%+W&yJsY7MZC=Rp7r)nn1;L|_GUU=s=)6tDmXR)N4lV9E$s
z1}aRbP}5B|!N36zfdxnZpKMP2GSWpEdC)-t0U*GP0|G*^MFIgh;1!DsKyXP)nh>xP
zB~iRV4Fp;tqXPj1Om<K+%KY<(6mJX%00C_QaAYfXZQ~U~eoQgR77Cmaj8_pT&<sBk
z03@OxN$oHZB?t^ORVSPI!O{-*7@|O64h)cv4pUKg#{@)x^9NVW-04CNGnkO4Wf7WD
z&k)7jK^{l}m>|Rl+#GpX8Qv5z%O3}5asUJ}q>zFO{%9qE8^aU<iXUPo!%Ql7I?^Z}
zR&4o3BMIO&6%!D;k!BT&*db0c5*)B+b&w>YYZ(zB5CK!U7*z%$gFNd-WZ2Ag>miZM
u@v0rQ%;!cddJMrGhJ-xCkuDWun1{x@U|>;57xd17L}sx?F-5vT00291;f>G$

literal 0
HcmV?d00001

diff --git a/docs/_static/docicons-note.gif b/docs/_static/docicons-note.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c0d599e90a193fdd54cc9400bab53235f5e8e3a9
GIT binary patch
literal 632
zcmZ?wbhEHb)MwCVxXQqgH`8?g{{5b5DwEH6thrJ0=G#40V<86zhZ*Msr=0b={qE50
z3*iSIPMLoxPC!7QzrQ~qAYlFa^$H3Ko%@{=5)uju3JeSkq8oJHzkkok%X0tz{rU6f
zORMpgFSBacY}e4xz`(%p|Ns9<XWW4dS^&kLEMQ}GKqSad3~c`oOepZsX%k^_aXOOI
zCB)Hm$YX63C-d?$YXy-t3CYRcdgg}`-6~_#7OdpnR<pZ;pZn&{eU?8KeXMTusZDHX
zYHA6qZ0`sw?CB|W%Zd_bnm%LZtl2Z=qVrr+*c6s5UABD1GKLh_<Y+ebvQS2a)zRrr
ztf?C|g>2atUB|L}<6hVOsVq+2QF|2m<u6{keC49F;)xVy_v~{*D<3QoxUn_c<L=R8
z&Nov$U%Ya86Yce0k?-My$Dg9Szh1b?u+&w7{f$5e*N1CUn^_(;PpD^P<hvujV&R19
z9|13;Pn<|{YMS6u;p0)*@7{5hEv)mvL?3%2Im2aA;Y*#o>o~6UgtR}5bDXLhSYqW<
z(Qw6IJ*ef-<pjnfdpVyu85C~{4!g)NVzlO_Sdzq<g~#j~I1~;ZkV;i7scpUf`F5+R
zOH3xCqhiC|-4&mo<(^99U8iVZoMytX^~@4o1|jXZGdm0$_;MUXD@BYZsAvUi=d&hz
zd=9e@v#P!}X+=QV`K9**<Z5?{tDc|q@MP+j?~4U=8h71T*VJ-POe3g@m65?30HD?E
ANdN!<

literal 0
HcmV?d00001

diff --git a/docs/_static/docicons-philosophy.gif b/docs/_static/docicons-philosophy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..432d93ba7920dac1fcf7c879cc00205bf0108ac5
GIT binary patch
literal 799
zcmZ?wbhEHb)MwCVxXQqwYAm$;T2|gnQwIl!hK7b8e?DJ(vr9lg;QaaXo%@~NzkfgT
zd~o?PD^6aP=mwo9pDrdOBz*k&;>6R%yYKg`y;*wb(F`Fe&IOm^?%%&}U|`^xrlO#r
zAg#t55D;MQE4_dJ{`vFgH*B^`=`rl@?_a-uy+fqDo`YCHK|xTlM$4K&1_p-z|Nl=q
z;|^qy2NZv@fHmrXNRXcx*!~}wTHv9xPN|Kv^=Qr}4Poaa9&4j`8JCwy8;Gn)Se&v^
zH(z{G!H+`2-P@<P&x)$Ny?yG>4HHU@1LPPO)TER+^BLo_YV!ERv?ffPz$@3D)|uFo
zs>m=wR#{$xOI}5QU5l45Z$?;cG!L(qtVAdm%LKXAVWp{@8x^uRmP_STy7A}DJy0yM
zoGGu!H8+({i>1m*UP~-b+*K$~jGgO-lYrK$v`i<~lvJK;Pn|fl)bhBy*z%;bI6gT^
zhwL#_IC6EGU#LKj0z=cZiN!o6t`*D)4T3DpDk~ct`cAA(&zlgiC8A{>SCK@B%!lWJ
ztRBXm8fgnYJv_j`BWboF=jWy#q5oZ4LQbbHY&@}ZUi7p*niu=Kni^zRvFu4!KkBBn
zj6=qvFp!mfRhisdnW6_#ZpyM38f$}lGbUD~cTTvm?V6wZcIO9dvPwR#M|R~2*&N!<
zq<2zO#cwI|oA&0enNB?1jEtEdWtWx<S+oh<%(;@L<+Y}D)3xbc{H<r>q!%(d+|?*$
zJ>j)CiQ#&W;wvx4KONs17{3%<otyNbk6o0}oX4Wn%jGVE)0eeRmm5w}-M|vQCHc(V
zlT1nv4zvk4?6dj#I^;U<%(CUdr5@RPMIGHjn-~0MNUCL(Udy4sfpbE*lg^QVR36cz
zQ#UqnUNvo)rx%v-s4Ztg1VaNG-=9==Z9%maHm%7rQ<f_#b)`H?6yA{0A|kGO?qj^9
t(gSvfyrX|MGfCey6>RTy?l~wcWh2#iG%A)QlU2xGRrILH4HiZQYXBf-C5`|9

literal 0
HcmV?d00001

diff --git a/docs/_static/homepage.css b/docs/_static/homepage.css
new file mode 100644
index 0000000000..276c5470ab
--- /dev/null
+++ b/docs/_static/homepage.css
@@ -0,0 +1,22 @@
+#index p.rubric { font-size:150%; font-weight:normal; margin-bottom:.2em; color:#487858; }
+
+#index div.section dt { font-weight: normal; }
+
+#index #s-getting-help { float: right; width: 35em; background: #E1ECE2; padding: 1em; margin: 2em 0 2em 2em; }
+#index #s-getting-help h2 { margin: 0; }
+
+#index #s-django-documentation div.section div.section h3 { margin: 0; }
+#index #s-django-documentation div.section div.section { background: #E1ECE2; padding: 1em; margin: 2em 0 2em 40.3em; }
+#index #s-django-documentation div.section div.section a.reference { white-space: nowrap; }
+
+#index #s-using-django dl,
+#index #s-add-on-contrib-applications dl,
+#index #s-solving-specific-problems dl,
+#index #s-reference dl
+    { float: left; width: 41em; }
+
+#index #s-add-on-contrib-applications,
+#index #s-solving-specific-problems,
+#index #s-reference,
+#index #s-and-all-the-rest
+    { clear: left; }
\ No newline at end of file
diff --git a/docs/_static/reset-fonts-grids.css b/docs/_static/reset-fonts-grids.css
new file mode 100644
index 0000000000..f5238d7c91
--- /dev/null
+++ b/docs/_static/reset-fonts-grids.css
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.5.1
+*/
+html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;font-variant:normal;}sup {vertical-align:text-top;}sub {vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}body {font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
+body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}s .yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
\ No newline at end of file
diff --git a/docs/_templates/genindex.html b/docs/_templates/genindex.html
new file mode 100644
index 0000000000..60c19efd45
--- /dev/null
+++ b/docs/_templates/genindex.html
@@ -0,0 +1,4 @@
+{% extends "!genindex.html" %}
+
+{% block bodyclass %}{% endblock %}
+{% block sidebarwrapper %}{% endblock %}
\ No newline at end of file
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
new file mode 100644
index 0000000000..eb42298ab3
--- /dev/null
+++ b/docs/_templates/layout.html
@@ -0,0 +1,87 @@
+{% extends "!layout.html" %}
+
+{%- macro secondnav %}
+  {%- if prev %}
+    &laquo; <a href="{{ prev.link|e }}" title="{{ prev.title|e }}">previous</a> 
+    {{ reldelim2 }}
+  {%- endif %}
+  {%- if parents %}
+    <a href="{{ parents.0.link|e }}" title="{{ parents.0.title|e }}" accesskey="U">up</a> 
+  {%- else %}
+    <a title="{{ docstitle }}" href="{{ pathto('index') }}" accesskey="U">up</a> 
+  {%- endif %}
+  {%- if next %}
+  {{ reldelim2 }}
+    <a href="{{ next.link|e }}" title="{{ next.title|e }}">next</a> &raquo;
+  {%- endif %}
+{%- endmacro %}
+
+{% block document %}
+  <div id="custom-doc" class="{% block bodyclass %}{{ 'yui-t6' if pagename != 'index' else '' }}{% endblock %}">
+    <div id="hd">
+      <h1><a href="{{ pathto('index') }}">{{ docstitle }}</a></h1>
+      <div id="global-nav">
+        <a title="Home page" href="{{ pathto('index') }}">Home</a> {{ reldelim2 }}
+        <a title="Table of contents" href="{{ pathto('contents') }}">Table of contents</a> {{ reldelim2 }}
+        <a title="Global index" href="{{ pathto('genindex') }}">Index</a> {{ reldelim2 }}
+        <a title="Search" href="{{ pathto('modindex') }}">Modules</a>
+      </div>
+      <div class="nav">{{ secondnav() }}</div>
+    </div>
+    
+    <div id="bd">
+      <div id="yui-main">
+        <div class="yui-b">
+          <div class="yui-g" id="{{ pagename|replace('/', '-') }}">
+            {% block body %}{% endblock %}
+          </div>         
+        </div>
+      </div>
+      {% block sidebarwrapper %}
+        {% if pagename != 'index' %}
+          <div class="yui-b" id="sidebar">
+            {{ sidebar() }}
+            {%- if last_updated %}
+              <h3>Last update:</h3>
+              <p class="topless">{{ last_updated }}</p>
+            {%- endif %}
+          </div> 
+        {% endif %}
+      {% endblock %}
+    </div>
+    
+    <div id="ft">
+      <div class="nav">{{ secondnav() }}</div>
+    </div>
+  </div>
+{% endblock %}
+
+{% block sidebarrel %}
+  <h3>Browse</h3>
+  <ul>
+    {% if prev %}
+      <li>Prev: <a href="{{ prev.link }}">{{ prev.title }}</a></li>
+    {% endif %}
+    {% if next %}
+      <li>Next: <a href="{{ next.link }}">{{ next.title }}</a></li>
+    {% endif %}
+  </ul>
+  <h3>You are here:</h3>
+  <ul>
+      <li>
+        <a href="{{ pathto('index') }}">{{ docstitle }}</a>
+        {% for p in parents %}
+          <ul><li><a href="{{ p.link }}">{{ p.title }}</a>
+        {% endfor %}
+        <ul><li>{{ title }}</li></ul>
+        {% for p in parents %}</li></ul>{% endfor %}
+      </li>
+  </ul>  
+{% endblock %}
+
+{# Empty some default blocks out #}
+{% block relbar1 %}{% endblock %}
+{% block relbar2 %}{% endblock %}
+{% block sidebar1 %}{% endblock %}
+{% block sidebar2 %}{% endblock %}
+{% block footer %}{% endblock %}
\ No newline at end of file
diff --git a/docs/_templates/modindex.html b/docs/_templates/modindex.html
new file mode 100644
index 0000000000..96a1d2080a
--- /dev/null
+++ b/docs/_templates/modindex.html
@@ -0,0 +1,3 @@
+{% extends "!modindex.html" %}
+{% block bodyclass %}{% endblock %}
+{% block sidebarwrapper %}{% endblock %}
\ No newline at end of file
diff --git a/docs/_templates/search.html b/docs/_templates/search.html
new file mode 100644
index 0000000000..8bd6dbd332
--- /dev/null
+++ b/docs/_templates/search.html
@@ -0,0 +1,3 @@
+{% extends "!search.html" %}
+{% block bodyclass %}{% endblock %}
+{% block sidebarwrapper %}{% endblock %}
\ No newline at end of file
diff --git a/docs/api_stability.txt b/docs/api_stability.txt
deleted file mode 100644
index f56872ca51..0000000000
--- a/docs/api_stability.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-=============
-API stability
-=============
-
-Although Django has not reached a 1.0 release, the bulk of Django's public APIs are
-stable as of the 0.95 release. This document explains which APIs will and will not
-change before the 1.0 release.
-
-What "stable" means
-===================
-
-In this context, stable means:
-
-   - All the public APIs -- everything documented in the linked documents, and
-     all methods that don't begin with an underscore -- will not be moved or
-     renamed without providing backwards-compatible aliases.
-     
-   - If new features are added to these APIs -- which is quite possible --
-     they will not break or change the meaning of existing methods. In other
-     words, "stable" does not (necessarily) mean "complete."
-     
-   - If, for some reason, an API declared stable must be removed or replaced, it
-     will be declared deprecated but will remain in the API until at least
-     version 1.1. Warnings will be issued when the deprecated method is
-     called.
-     
-   - We'll only break backwards compatibility of these APIs if a bug or
-     security hole makes it completely unavoidable.
-
-Stable APIs
-===========
-
-These APIs are stable:
-
-   - `Caching`_.
-   
-   - `Custom template tags and libraries`_ (with the possible exception for a
-     small change in the way templates are registered and loaded).
-     
-   - `Database lookup`_ (with the exception of validation; see below).
-   
-   - `django-admin utility`_.
-   
-   - `FastCGI integration`_.
-   
-   - `Flatpages`_.
-   
-   - `Generic views`_.
-   
-   - `Internationalization`_.
-   
-   - `Legacy database integration`_.
-   
-   - `Model definition`_ (with the exception of generic relations; see below).
-   
-   - `mod_python integration`_.
-   
-   - `Redirects`_.
-   
-   - `Request/response objects`_.
-   
-   - `Sending e-mail`_.
-   
-   - `Sessions`_.
-   
-   - `Settings`_.
-   
-   - `Syndication`_.
-   
-   - `Template language`_ (with the exception of some possible disambiguation
-     of how tag arguments are passed to tags and filters).
-   
-   - `Transactions`_.
-   
-   - `URL dispatch`_.   
-   
-You'll notice that this list comprises the bulk of Django's APIs. That's right
--- most of the changes planned between now and Django 1.0 are either under the
-hood, feature additions, or changes to a few select bits. A good estimate is
-that 90% of Django can be considered forwards-compatible at this point.
-
-That said, these APIs should *not* be considered stable, and are likely to
-change:
-
-   - `Serialization`_ is under heavy development; changes are likely.
-
-   - The `authentication`_ framework is changing to be far more flexible, and
-     API changes may be necessary.
-
-   - Generic relations will most likely be moved out of core and into the
-     content-types contrib package to avoid core dependencies on optional
-     components.
-
-   - The comments framework, which is yet undocumented, will likely get a complete
-     rewrite before Django 1.0. Even if the change isn't quite that drastic,
-     there will at least be moderate changes.
-     
-.. _caching: ../cache/
-.. _custom template tags and libraries: ../templates_python/
-.. _database lookup: ../db-api/
-.. _django-admin utility: ../django-admin/
-.. _fastcgi integration: ../fastcgi/
-.. _flatpages: ../flatpages/
-.. _generic views: ../generic_views/
-.. _internationalization: ../i18n/
-.. _legacy database integration: ../legacy_databases/
-.. _model definition: ../model-api/
-.. _mod_python integration: ../modpython/
-.. _redirects: ../redirects/
-.. _request/response objects: ../request_response/
-.. _sending e-mail: ../email/
-.. _sessions: ../sessions/
-.. _settings: ../settings/
-.. _syndication: ../syndication_feeds/
-.. _template language: ../templates/
-.. _transactions: ../transactions/
-.. _url dispatch: ../url_dispatch/
-.. _serialization: ../serialization/
-.. _authentication: ../authentication/
diff --git a/docs/authentication.txt b/docs/authentication.txt
deleted file mode 100644
index 4345fc0c11..0000000000
--- a/docs/authentication.txt
+++ /dev/null
@@ -1,1173 +0,0 @@
-=============================
-User authentication in Django
-=============================
-
-Django comes with a user authentication system. It handles user accounts,
-groups, permissions and cookie-based user sessions. This document explains how
-things work.
-
-Overview
-========
-
-The auth system consists of:
-
-    * Users
-    * Permissions: Binary (yes/no) flags designating whether a user may perform
-      a certain task.
-    * Groups: A generic way of applying labels and permissions to more than one
-      user.
-    * Messages: A simple way to queue messages for given users.
-
-Installation
-============
-
-Authentication support is bundled as a Django application in
-``django.contrib.auth``. To install it, do the following:
-
-    1. Put ``'django.contrib.auth'`` in your ``INSTALLED_APPS`` setting.
-    2. Run the command ``manage.py syncdb``.
-
-Note that the default ``settings.py`` file created by
-``django-admin.py startproject`` includes ``'django.contrib.auth'`` in
-``INSTALLED_APPS`` for convenience. If your ``INSTALLED_APPS`` already contains
-``'django.contrib.auth'``, feel free to run ``manage.py syncdb`` again; you
-can run that command as many times as you'd like, and each time it'll only
-install what's needed.
-
-The ``syncdb`` command creates the necessary database tables, creates
-permission objects for all installed apps that need 'em, and prompts you to
-create a superuser account the first time you run it.
-
-Once you've taken those steps, that's it.
-
-Users
-=====
-
-Users are represented by a standard Django model, which lives in
-`django/contrib/auth/models.py`_.
-
-.. _django/contrib/auth/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/models.py
-
-API reference
--------------
-
-Fields
-~~~~~~
-
-``User`` objects have the following fields:
-
-    * ``username`` -- Required. 30 characters or fewer. Alphanumeric characters
-      only (letters, digits and underscores).
-    * ``first_name`` -- Optional. 30 characters or fewer.
-    * ``last_name`` -- Optional. 30 characters or fewer.
-    * ``email`` -- Optional. E-mail address.
-    * ``password`` -- Required. A hash of, and metadata about, the password.
-      (Django doesn't store the raw password.) Raw passwords can be arbitrarily
-      long and can contain any character. See the "Passwords" section below.
-    * ``is_staff`` -- Boolean. Designates whether this user can access the
-      admin site.
-    * ``is_active`` -- Boolean. Designates whether this account can be used
-      to log in. Set this flag to ``False`` instead of deleting accounts.
-    * ``is_superuser`` -- Boolean. Designates that this user has all permissions
-      without explicitly assigning them.
-    * ``last_login`` -- A datetime of the user's last login. Is set to the
-      current date/time by default.
-    * ``date_joined`` -- A datetime designating when the account was created.
-      Is set to the current date/time by default when the account is created.
-
-Methods
-~~~~~~~
-
-``User`` objects have two many-to-many fields: ``groups`` and
-``user_permissions``. ``User`` objects can access their related
-objects in the same way as any other `Django model`_::
-
-    myuser.groups = [group_list]
-    myuser.groups.add(group, group, ...)
-    myuser.groups.remove(group, group, ...)
-    myuser.groups.clear()
-    myuser.user_permissions = [permission_list]
-    myuser.user_permissions.add(permission, permission, ...)
-    myuser.user_permissions.remove(permission, permission, ...)
-    myuser.user_permissions.clear()
-
-In addition to those automatic API methods, ``User`` objects have the following
-custom methods:
-
-    * ``is_anonymous()`` -- Always returns ``False``. This is a way of
-      differentiating ``User`` and ``AnonymousUser`` objects. Generally, you
-      should prefer using ``is_authenticated()`` to this method.
-
-    * ``is_authenticated()`` -- Always returns ``True``. This is a way to
-      tell if the user has been authenticated. This does not imply any
-      permissions, and doesn't check if the user is active - it only indicates
-      that the user has provided a valid username and password.
-
-    * ``get_full_name()`` -- Returns the ``first_name`` plus the ``last_name``,
-      with a space in between.
-
-    * ``set_password(raw_password)`` -- Sets the user's password to the given
-      raw string, taking care of the password hashing. Doesn't save the
-      ``User`` object.
-
-    * ``check_password(raw_password)`` -- Returns ``True`` if the given raw
-      string is the correct password for the user. (This takes care of the
-      password hashing in making the comparison.)
-
-    * ``set_unusable_password()`` -- **New in Django development version.**
-      Marks the user as having no password set.  This isn't the same as having
-      a blank string for a password. ``check_password()`` for this user will
-      never return ``True``. Doesn't save the ``User`` object.
-
-      You may need this if authentication for your application takes place
-      against an existing external source such as an LDAP directory.
-
-    * ``has_usable_password()`` -- **New in Django development version.**
-      Returns ``False`` if ``set_unusable_password()`` has been called for this
-      user.
-
-    * ``get_group_permissions()`` -- Returns a list of permission strings that
-      the user has, through his/her groups.
-
-    * ``get_all_permissions()`` -- Returns a list of permission strings that
-      the user has, both through group and user permissions.
-
-    * ``has_perm(perm)`` -- Returns ``True`` if the user has the specified
-      permission, where perm is in the format ``"package.codename"``.
-      If the user is inactive, this method will always return ``False``.
-
-    * ``has_perms(perm_list)`` -- Returns ``True`` if the user has each of the
-      specified permissions, where each perm is in the format
-      ``"package.codename"``. If the user is inactive, this method will
-      always return ``False``.
-
-    * ``has_module_perms(package_name)`` -- Returns ``True`` if the user has
-      any permissions in the given package (the Django app label).
-      If the user is inactive, this method will always return ``False``.
-
-    * ``get_and_delete_messages()`` -- Returns a list of ``Message`` objects in
-      the user's queue and deletes the messages from the queue.
-
-    * ``email_user(subject, message, from_email=None)`` -- Sends an e-mail to
-      the user. If ``from_email`` is ``None``, Django uses the
-      `DEFAULT_FROM_EMAIL`_ setting.
-
-    * ``get_profile()`` -- Returns a site-specific profile for this user.
-      Raises ``django.contrib.auth.models.SiteProfileNotAvailable`` if the current site
-      doesn't allow profiles. For information on how to define a
-      site-specific user profile, see the section on `storing additional
-      user information`_ below.
-
-.. _Django model: ../model-api/
-.. _DEFAULT_FROM_EMAIL: ../settings/#default-from-email
-.. _storing additional user information: #storing-additional-information-about-users
-
-Manager functions
-~~~~~~~~~~~~~~~~~
-
-The ``User`` model has a custom manager that has the following helper functions:
-
-    * ``create_user(username, email, password=None)`` -- Creates, saves and
-      returns a ``User``. The ``username``, ``email`` and ``password`` are set
-      as given, and the ``User`` gets ``is_active=True``.
-
-      If no password is provided, ``set_unusable_password()`` will be called.
-
-      See `Creating users`_ for example usage.
-
-    * ``make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789')``
-      Returns a random password with the given length and given string of
-      allowed characters. (Note that the default value of ``allowed_chars``
-      doesn't contain letters that can cause user confusion, including
-      ``1``, ``I`` and ``0``).
-
-Basic usage
------------
-
-Creating users
-~~~~~~~~~~~~~~
-
-The most basic way to create users is to use the ``create_user`` helper
-function that comes with Django::
-
-    >>> from django.contrib.auth.models import User
-    >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
-
-    # At this point, user is a User object that has already been saved
-    # to the database. You can continue to change its attributes
-    # if you want to change other fields.
-    >>> user.is_staff = True
-    >>> user.save()
-
-Changing passwords
-~~~~~~~~~~~~~~~~~~
-
-Change a password with ``set_password()``::
-
-    >>> from django.contrib.auth.models import User
-    >>> u = User.objects.get(username__exact='john')
-    >>> u.set_password('new password')
-    >>> u.save()
-
-Don't set the ``password`` attribute directly unless you know what you're
-doing. This is explained in the next section.
-
-Passwords
----------
-
-The ``password`` attribute of a ``User`` object is a string in this format::
-
-    hashtype$salt$hash
-
-That's hashtype, salt and hash, separated by the dollar-sign character.
-
-Hashtype is either ``sha1`` (default), ``md5`` or ``crypt`` -- the algorithm
-used to perform a one-way hash of the password. Salt is a random string used
-to salt the raw password to create the hash. Note that the ``crypt`` method is
-only supported on platforms that have the standard Python ``crypt`` module
-available, and ``crypt`` support is only available in the Django development
-version.
-
-For example::
-
-    sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4
-
-The ``User.set_password()`` and ``User.check_password()`` functions handle
-the setting and checking of these values behind the scenes.
-
-Previous Django versions, such as 0.90, used simple MD5 hashes without password
-salts. For backwards compatibility, those are still supported; they'll be
-converted automatically to the new style the first time ``User.check_password()``
-works correctly for a given user.
-
-Anonymous users
----------------
-
-``django.contrib.auth.models.AnonymousUser`` is a class that implements
-the ``django.contrib.auth.models.User`` interface, with these differences:
-
-    * ``id`` is always ``None``.
-    * ``is_staff`` and ``is_superuser`` are always ``False``.
-    * ``is_active`` is always ``False``.
-    * ``groups`` and ``user_permissions`` are always empty.
-    * ``is_anonymous()`` returns ``True`` instead of ``False``.
-    * ``is_authenticated()`` returns ``False`` instead of ``True``.
-    * ``has_perm()`` always returns ``False``.
-    * ``set_password()``, ``check_password()``, ``save()``, ``delete()``,
-      ``set_groups()`` and ``set_permissions()`` raise ``NotImplementedError``.
-
-In practice, you probably won't need to use ``AnonymousUser`` objects on your
-own, but they're used by Web requests, as explained in the next section.
-
-Creating superusers
--------------------
-
-``manage.py syncdb`` prompts you to create a superuser the first time you run
-it after adding ``'django.contrib.auth'`` to your ``INSTALLED_APPS``. If you need
-to create a superuser at a later date, you can use a command line utility.
-
-**New in Django development version.**::
-
-    manage.py createsuperuser --username=joe --email=joe@example.com
-
-You will be prompted for a password. After you enter one, the user will be
-created immediately. If you leave off the ``--username`` or the ``--email``
-options, it will prompt you for those values.
-
-If you're using an older release of Django, the old way of creating a superuser
-on the command line still works::
-
-    python /path/to/django/contrib/auth/create_superuser.py
-
-...where ``/path/to`` is the path to the Django codebase on your filesystem. The
-``manage.py`` command is preferred because it figures out the correct path and
-environment for you.
-
-Storing additional information about users
-------------------------------------------
-
-If you'd like to store additional information related to your users,
-Django provides a method to specify a site-specific related model --
-termed a "user profile" -- for this purpose.
-
-To make use of this feature, define a model with fields for the
-additional information you'd like to store, or additional methods
-you'd like to have available, and also add a ``ForeignKey`` from your
-model to the ``User`` model, specified with ``unique=True`` to ensure
-only one instance of your model can be created for each ``User``.
-
-To indicate that this model is the user profile model for a given
-site, fill in the setting ``AUTH_PROFILE_MODULE`` with a string
-consisting of the following items, separated by a dot:
-
-1. The (normalized to lower-case) name of the application in which the
-   user profile model is defined (in other words, an all-lowercase
-   version of the name which was passed to ``manage.py startapp`` to
-   create the application).
-
-2. The (normalized to lower-case) name of the model class.
-
-For example, if the profile model was a class named ``UserProfile``
-and was defined inside an application named ``accounts``, the
-appropriate setting would be::
-
-    AUTH_PROFILE_MODULE = 'accounts.userprofile'
-
-When a user profile model has been defined and specified in this
-manner, each ``User`` object will have a method -- ``get_profile()``
--- which returns the instance of the user profile model associated
-with that ``User``.
-
-For more information, see `Chapter 12 of the Django book`_.
-
-.. _Chapter 12 of the Django book: http://www.djangobook.com/en/1.0/chapter12/#cn222
-
-Authentication in Web requests
-==============================
-
-Until now, this document has dealt with the low-level APIs for manipulating
-authentication-related objects. On a higher level, Django can hook this
-authentication framework into its system of `request objects`_.
-
-First, install the ``SessionMiddleware`` and ``AuthenticationMiddleware``
-middlewares by adding them to your ``MIDDLEWARE_CLASSES`` setting. See the
-`session documentation`_ for more information.
-
-Once you have those middlewares installed, you'll be able to access
-``request.user`` in views. ``request.user`` will give you a ``User`` object
-representing the currently logged-in user. If a user isn't currently logged in,
-``request.user`` will be set to an instance of ``AnonymousUser`` (see the
-previous section). You can tell them apart with ``is_authenticated()``, like so::
-
-    if request.user.is_authenticated():
-        # Do something for authenticated users.
-    else:
-        # Do something for anonymous users.
-
-.. _request objects: ../request_response/#httprequest-objects
-.. _session documentation: ../sessions/
-
-How to log a user in
---------------------
-
-Django provides two functions in ``django.contrib.auth``: ``authenticate()``
-and ``login()``.
-
-To authenticate a given username and password, use ``authenticate()``. It
-takes two keyword arguments, ``username`` and ``password``, and it returns
-a ``User`` object if the password is valid for the given username. If the
-password is invalid, ``authenticate()`` returns ``None``. Example::
-
-    from django.contrib.auth import authenticate
-    user = authenticate(username='john', password='secret')
-    if user is not None:
-        if user.is_active:
-            print "You provided a correct username and password!"
-        else:
-            print "Your account has been disabled!"
-    else:
-        print "Your username and password were incorrect."
-
-To log a user in, in a view, use ``login()``. It takes an ``HttpRequest``
-object and a ``User`` object. ``login()`` saves the user's ID in the session,
-using Django's session framework, so, as mentioned above, you'll need to make
-sure to have the session middleware installed.
-
-This example shows how you might use both ``authenticate()`` and ``login()``::
-
-    from django.contrib.auth import authenticate, login
-
-    def my_view(request):
-        username = request.POST['username']
-        password = request.POST['password']
-        user = authenticate(username=username, password=password)
-        if user is not None:
-            if user.is_active:
-                login(request, user)
-                # Redirect to a success page.
-            else:
-                # Return a 'disabled account' error message
-        else:
-            # Return an 'invalid login' error message.
-
-.. admonition:: Calling ``authenticate()`` first
-
-    When you're manually logging a user in, you *must* call
-    ``authenticate()`` before you call ``login()``. ``authenticate()``
-    sets an attribute on the ``User`` noting which authentication
-    backend successfully authenticated that user (see the `backends
-    documentation`_ for details), and this information is needed later
-    during the login process.
-
-.. _backends documentation: #other-authentication-sources
-
-Manually checking a user's password
------------------------------------
-
-If you'd like to manually authenticate a user by comparing a
-plain-text password to the hashed password in the database, use the
-convenience function ``django.contrib.auth.models.check_password``. It
-takes two arguments: the plain-text password to check, and the full
-value of a user's ``password`` field in the database to check against,
-and returns ``True`` if they match, ``False`` otherwise.
-
-How to log a user out
----------------------
-
-To log out a user who has been logged in via ``django.contrib.auth.login()``,
-use ``django.contrib.auth.logout()`` within your view. It takes an
-``HttpRequest`` object and has no return value. Example::
-
-    from django.contrib.auth import logout
-
-    def logout_view(request):
-        logout(request)
-        # Redirect to a success page.
-
-Note that ``logout()`` doesn't throw any errors if the user wasn't logged in.
-
-**New in Django development version:** When you call ``logout()``, the session
-data for the current request is completely cleaned out. All existing data is
-removed. This is to prevent another person from using the same web browser to
-log in and have access to the previous user's session data. If you want to put
-anything into the session that will be available to the user immediately after
-logging out, do that *after* calling ``django.contrib.auth.logout()``.
-
-Limiting access to logged-in users
-----------------------------------
-
-The raw way
-~~~~~~~~~~~
-
-The simple, raw way to limit access to pages is to check
-``request.user.is_authenticated()`` and either redirect to a login page::
-
-    from django.http import HttpResponseRedirect
-
-    def my_view(request):
-        if not request.user.is_authenticated():
-            return HttpResponseRedirect('/login/?next=%s' % request.path)
-        # ...
-
-...or display an error message::
-
-    def my_view(request):
-        if not request.user.is_authenticated():
-            return render_to_response('myapp/login_error.html')
-        # ...
-
-The login_required decorator
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As a shortcut, you can use the convenient ``login_required`` decorator::
-
-    from django.contrib.auth.decorators import login_required
-
-    def my_view(request):
-        # ...
-    my_view = login_required(my_view)
-
-Here's an equivalent example, using the more compact decorator syntax
-introduced in Python 2.4::
-
-    from django.contrib.auth.decorators import login_required
-
-    @login_required
-    def my_view(request):
-        # ...
-
-In the Django development version, ``login_required`` also takes an optional
-``redirect_field_name`` parameter. Example::
-
-    from django.contrib.auth.decorators import login_required
-
-    def my_view(request):
-        # ...
-    my_view = login_required(redirect_field_name='redirect_to')(my_view)
-
-Again, an equivalent example of the more compact decorator syntax introduced in Python 2.4::
-
-    from django.contrib.auth.decorators import login_required
-
-    @login_required(redirect_field_name='redirect_to')
-    def my_view(request):
-        # ...
-
-``login_required`` does the following:
-
-    * If the user isn't logged in, redirect to ``settings.LOGIN_URL``
-      (``/accounts/login/`` by default), passing the current absolute URL
-      in the query string as ``next`` or the value of ``redirect_field_name``.
-      For example:
-      ``/accounts/login/?next=/polls/3/``.
-    * If the user is logged in, execute the view normally. The view code is
-      free to assume the user is logged in.
-
-Note that you'll need to map the appropriate Django view to ``settings.LOGIN_URL``.
-For example, using the defaults, add the following line to your URLconf::
-
-    (r'^accounts/login/$', 'django.contrib.auth.views.login'),
-
-Here's what ``django.contrib.auth.views.login`` does:
-
-    * If called via ``GET``, it displays a login form that POSTs to the same
-      URL. More on this in a bit.
-
-    * If called via ``POST``, it tries to log the user in. If login is
-      successful, the view redirects to the URL specified in ``next``. If
-      ``next`` isn't provided, it redirects to ``settings.LOGIN_REDIRECT_URL``
-      (which defaults to ``/accounts/profile/``). If login isn't successful,
-      it redisplays the login form.
-
-It's your responsibility to provide the login form in a template called
-``registration/login.html`` by default. This template gets passed three
-template context variables:
-
-    * ``form``: A ``Form`` object representing the login form. See the
-      `forms documentation`_ for more on ``FormWrapper`` objects.
-    * ``next``: The URL to redirect to after successful login. This may contain
-      a query string, too.
-    * ``site_name``: The name of the current ``Site``, according to the
-      ``SITE_ID`` setting. If you're using the Django development version and
-      you don't have the site framework installed, this will be set to the
-      value of ``request.META['SERVER_NAME']``. For more on sites, see the
-      `site framework docs`_.
-
-If you'd prefer not to call the template ``registration/login.html``, you can
-pass the ``template_name`` parameter via the extra arguments to the view in
-your URLconf. For example, this URLconf line would use ``myapp/login.html``
-instead::
-
-    (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),
-
-Here's a sample ``registration/login.html`` template you can use as a starting
-point. It assumes you have a ``base.html`` template that defines a ``content``
-block::
-
-    {% extends "base.html" %}
-
-    {% block content %}
-
-    {% if form.errors %}
-    <p>Your username and password didn't match. Please try again.</p>
-    {% endif %}
-
-    <form method="post" action=".">
-    <table>
-    <tr><td>{{ form.username.label_tag }}</td><td>{{ form.username }}</td></tr>
-    <tr><td>{{ form.password.label_tag }}</td><td>{{ form.password }}</td></tr>
-    </table>
-
-    <input type="submit" value="login" />
-    <input type="hidden" name="next" value="{{ next }}" />
-    </form>
-
-    {% endblock %}
-
-.. _forms documentation: ../forms/
-.. _site framework docs: ../sites/
-
-Other built-in views
---------------------
-
-In addition to the ``login`` view, the authentication system includes a
-few other useful built-in views:
-
-``django.contrib.auth.views.logout``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-Logs a user out.
-
-**Optional arguments:**
-
-    * ``template_name``: The full name of a template to display after
-      logging the user out. This will default to
-      ``registration/logged_out.html`` if no argument is supplied.
-
-**Template context:**
-
-    * ``title``: The string "Logged out", localized.
-
-``django.contrib.auth.views.logout_then_login``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-Logs a user out, then redirects to the login page.
-
-**Optional arguments:**
-
-    * ``login_url``: The URL of the login page to redirect to. This
-      will default to ``settings.LOGIN_URL`` if not supplied.
-
-``django.contrib.auth.views.password_change``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-Allows a user to change their password.
-
-**Optional arguments:**
-
-    * ``template_name``: The full name of a template to use for
-      displaying the password change form. This will default to
-      ``registration/password_change_form.html`` if not supplied.
-
-**Template context:**
-
-    * ``form``: The password change form.
-
-``django.contrib.auth.views.password_change_done``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-The page shown after a user has changed their password.
-
-**Optional arguments:**
-
-    * ``template_name``: The full name of a template to use. This will
-      default to ``registration/password_change_done.html`` if not
-      supplied.
-
-``django.contrib.auth.views.password_reset``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-Allows a user to reset their password, and sends them the new password
-in an e-mail.
-
-**Optional arguments:**
-
-    * ``template_name``: The full name of a template to use for
-      displaying the password reset form. This will default to
-      ``registration/password_reset_form.html`` if not supplied.
-
-    * ``email_template_name``: The full name of a template to use for
-      generating the e-mail with the new password. This will default to
-      ``registration/password_reset_email.html`` if not supplied.
-
-**Template context:**
-
-    * ``form``: The form for resetting the user's password.
-
-``django.contrib.auth.views.password_reset_done``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-The page shown after a user has reset their password.
-
-**Optional arguments:**
-
-    * ``template_name``: The full name of a template to use. This will
-      default to ``registration/password_reset_done.html`` if not
-      supplied.
-
-``django.contrib.auth.views.redirect_to_login``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Description:**
-
-Redirects to the login page, and then back to another URL after a
-successful login.
-
-**Required arguments:**
-
-    * ``next``: The URL to redirect to after a successful login.
-
-**Optional arguments:**
-
-    * ``login_url``: The URL of the login page to redirect to. This
-      will default to ``settings.LOGIN_URL`` if not supplied.
-
-Built-in forms
---------------
-
-**New in Django development version.**
-
-If you don't want to use the built-in views, but want the convenience
-of not having to write forms for this functionality, the authentication
-system provides several built-in forms:
-
-    * ``django.contrib.auth.forms.AdminPasswordChangeForm``: A form used in
-      the admin interface to change a user's password.
-
-    * ``django.contrib.auth.forms.AuthenticationForm``: A form for logging a
-      user in.
-
-    * ``django.contrib.auth.forms.PasswordChangeForm``: A form for allowing a
-      user to change their password.
-
-    * ``django.contrib.auth.forms.PasswordResetForm``: A form for resetting a
-      user's password and e-mailing the new password to them.
-
-    * ``django.contrib.auth.forms.UserCreationForm``: A form for creating a
-      new user.
-
-Limiting access to logged-in users that pass a test
----------------------------------------------------
-
-To limit access based on certain permissions or some other test, you'd do
-essentially the same thing as described in the previous section.
-
-The simple way is to run your test on ``request.user`` in the view directly.
-For example, this view checks to make sure the user is logged in and has the
-permission ``polls.can_vote``::
-
-    def my_view(request):
-        if not (request.user.is_authenticated() and request.user.has_perm('polls.can_vote')):
-            return HttpResponse("You can't vote in this poll.")
-        # ...
-
-As a shortcut, you can use the convenient ``user_passes_test`` decorator::
-
-    from django.contrib.auth.decorators import user_passes_test
-
-    def my_view(request):
-        # ...
-    my_view = user_passes_test(lambda u: u.has_perm('polls.can_vote'))(my_view)
-
-We're using this particular test as a relatively simple example. However, if
-you just want to test whether a permission is available to a user, you can use
-the ``permission_required()`` decorator, described later in this document.
-
-Here's the same thing, using Python 2.4's decorator syntax::
-
-    from django.contrib.auth.decorators import user_passes_test
-
-    @user_passes_test(lambda u: u.has_perm('polls.can_vote'))
-    def my_view(request):
-        # ...
-
-``user_passes_test`` takes a required argument: a callable that takes a
-``User`` object and returns ``True`` if the user is allowed to view the page.
-Note that ``user_passes_test`` does not automatically check that the ``User``
-is not anonymous.
-
-``user_passes_test()`` takes an optional ``login_url`` argument, which lets you
-specify the URL for your login page (``settings.LOGIN_URL`` by default).
-
-Example in Python 2.3 syntax::
-
-    from django.contrib.auth.decorators import user_passes_test
-
-    def my_view(request):
-        # ...
-    my_view = user_passes_test(lambda u: u.has_perm('polls.can_vote'), login_url='/login/')(my_view)
-
-Example in Python 2.4 syntax::
-
-    from django.contrib.auth.decorators import user_passes_test
-
-    @user_passes_test(lambda u: u.has_perm('polls.can_vote'), login_url='/login/')
-    def my_view(request):
-        # ...
-
-The permission_required decorator
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It's a relatively common task to check whether a user has a particular
-permission. For that reason, Django provides a shortcut for that case: the
-``permission_required()`` decorator. Using this decorator, the earlier example
-can be written as::
-
-    from django.contrib.auth.decorators import permission_required
-
-    def my_view(request):
-        # ...
-    my_view = permission_required('polls.can_vote')(my_view)
-
-Note that ``permission_required()`` also takes an optional ``login_url``
-parameter. Example::
-
-    from django.contrib.auth.decorators import permission_required
-
-    def my_view(request):
-        # ...
-    my_view = permission_required('polls.can_vote', login_url='/loginpage/')(my_view)
-
-As in the ``login_required`` decorator, ``login_url`` defaults to
-``settings.LOGIN_URL``.
-
-Limiting access to generic views
---------------------------------
-
-To limit access to a `generic view`_, write a thin wrapper around the view,
-and point your URLconf to your wrapper instead of the generic view itself.
-For example::
-
-    from django.views.generic.date_based import object_detail
-
-    @login_required
-    def limited_object_detail(*args, **kwargs):
-        return object_detail(*args, **kwargs)
-
-.. _generic view: ../generic_views/
-
-Permissions
-===========
-
-Django comes with a simple permissions system. It provides a way to assign
-permissions to specific users and groups of users.
-
-It's used by the Django admin site, but you're welcome to use it in your own
-code.
-
-The Django admin site uses permissions as follows:
-
-    * Access to view the "add" form and add an object is limited to users with
-      the "add" permission for that type of object.
-    * Access to view the change list, view the "change" form and change an
-      object is limited to users with the "change" permission for that type of
-      object.
-    * Access to delete an object is limited to users with the "delete"
-      permission for that type of object.
-
-Permissions are set globally per type of object, not per specific object
-instance. For example, it's possible to say "Mary may change news stories," but
-it's not currently possible to say "Mary may change news stories, but only the
-ones she created herself" or "Mary may only change news stories that have a
-certain status, publication date or ID." The latter functionality is something
-Django developers are currently discussing.
-
-Default permissions
--------------------
-
-When ``django.contrib.auth`` is listed in your ``INSTALLED_APPS``
-setting, it will ensure that three default permissions -- add, change
-and delete -- are created for each Django model defined in one of your
-installed applications.
-
-These permissions will be created when you run ``manage.py syncdb``;
-the first time you run ``syncdb`` after adding ``django.contrib.auth``
-to ``INSTALLED_APPS``, the default permissions will be created for all
-previously-installed models, as well as for any new models being
-installed at that time. Afterward, it will create default permissions
-for new models each time you run ``manage.py syncdb``.
-
-Custom permissions
-------------------
-
-To create custom permissions for a given model object, use the ``permissions``
-`model Meta attribute`_.
-
-This example model creates three custom permissions::
-
-    class USCitizen(models.Model):
-        # ...
-        class Meta:
-            permissions = (
-                ("can_drive", "Can drive"),
-                ("can_vote", "Can vote in elections"),
-                ("can_drink", "Can drink alcohol"),
-            )
-
-The only thing this does is create those extra permissions when you run
-``syncdb``.
-
-.. _model Meta attribute: ../model-api/#meta-options
-
-API reference
--------------
-
-Just like users, permissions are implemented in a Django model that lives in
-`django/contrib/auth/models.py`_.
-
-.. _django/contrib/auth/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/models.py
-
-Fields
-~~~~~~
-
-``Permission`` objects have the following fields:
-
-    * ``name`` -- Required. 50 characters or fewer. Example: ``'Can vote'``.
-    * ``content_type`` -- Required. A reference to the ``django_content_type``
-      database table, which contains a record for each installed Django model.
-    * ``codename`` -- Required. 100 characters or fewer. Example: ``'can_vote'``.
-
-Methods
-~~~~~~~
-
-``Permission`` objects have the standard data-access methods like any other
-`Django model`_.
-
-Authentication data in templates
-================================
-
-The currently logged-in user and his/her permissions are made available in the
-`template context`_ when you use ``RequestContext``.
-
-.. admonition:: Technicality
-
-   Technically, these variables are only made available in the template context
-   if you use ``RequestContext`` *and* your ``TEMPLATE_CONTEXT_PROCESSORS``
-   setting contains ``"django.core.context_processors.auth"``, which is default.
-   For more, see the `RequestContext docs`_.
-
-   .. _RequestContext docs: ../templates_python/#subclassing-context-requestcontext
-
-Users
------
-
-The currently logged-in user, either a ``User`` instance or an``AnonymousUser``
-instance, is stored in the template variable ``{{ user }}``::
-
-    {% if user.is_authenticated %}
-        <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
-    {% else %}
-        <p>Welcome, new user. Please log in.</p>
-    {% endif %}
-
-Permissions
------------
-
-The currently logged-in user's permissions are stored in the template variable
-``{{ perms }}``. This is an instance of ``django.core.context_processors.PermWrapper``,
-which is a template-friendly proxy of permissions.
-
-In the ``{{ perms }}`` object, single-attribute lookup is a proxy to
-``User.has_module_perms``. This example would display ``True`` if the logged-in
-user had any permissions in the ``foo`` app::
-
-    {{ perms.foo }}
-
-Two-level-attribute lookup is a proxy to ``User.has_perm``. This example would
-display ``True`` if the logged-in user had the permission ``foo.can_vote``::
-
-    {{ perms.foo.can_vote }}
-
-Thus, you can check permissions in template ``{% if %}`` statements::
-
-    {% if perms.foo %}
-        <p>You have permission to do something in the foo app.</p>
-        {% if perms.foo.can_vote %}
-            <p>You can vote!</p>
-        {% endif %}
-        {% if perms.foo.can_drive %}
-            <p>You can drive!</p>
-        {% endif %}
-    {% else %}
-        <p>You don't have permission to do anything in the foo app.</p>
-    {% endif %}
-
-.. _template context: ../templates_python/
-
-Groups
-======
-
-Groups are a generic way of categorizing users so you can apply permissions, or
-some other label, to those users. A user can belong to any number of groups.
-
-A user in a group automatically has the permissions granted to that group. For
-example, if the group ``Site editors`` has the permission
-``can_edit_home_page``, any user in that group will have that permission.
-
-Beyond permissions, groups are a convenient way to categorize users to give
-them some label, or extended functionality. For example, you could create a
-group ``'Special users'``, and you could write code that could, say, give them
-access to a members-only portion of your site, or send them members-only e-mail
-messages.
-
-Messages
-========
-
-The message system is a lightweight way to queue messages for given users.
-
-A message is associated with a ``User``. There's no concept of expiration or
-timestamps.
-
-Messages are used by the Django admin after successful actions. For example,
-``"The poll Foo was created successfully."`` is a message.
-
-The API is simple:
-
-    * To create a new message, use
-      ``user_obj.message_set.create(message='message_text')``.
-    * To retrieve/delete messages, use ``user_obj.get_and_delete_messages()``,
-      which returns a list of ``Message`` objects in the user's queue (if any)
-      and deletes the messages from the queue.
-
-In this example view, the system saves a message for the user after creating
-a playlist::
-
-    def create_playlist(request, songs):
-        # Create the playlist with the given songs.
-        # ...
-        request.user.message_set.create(message="Your playlist was added successfully.")
-        return render_to_response("playlists/create.html",
-            context_instance=RequestContext(request))
-
-When you use ``RequestContext``, the currently logged-in user and his/her
-messages are made available in the `template context`_ as the template variable
-``{{ messages }}``. Here's an example of template code that displays messages::
-
-    {% if messages %}
-    <ul>
-        {% for message in messages %}
-        <li>{{ message }}</li>
-        {% endfor %}
-    </ul>
-    {% endif %}
-
-Note that ``RequestContext`` calls ``get_and_delete_messages`` behind the
-scenes, so any messages will be deleted even if you don't display them.
-
-Finally, note that this messages framework only works with users in the user
-database. To send messages to anonymous users, use the `session framework`_.
-
-.. _session framework: ../sessions/
-
-Other authentication sources
-============================
-
-The authentication that comes with Django is good enough for most common cases,
-but you may have the need to hook into another authentication source -- that
-is, another source of usernames and passwords or authentication methods.
-
-For example, your company may already have an LDAP setup that stores a username
-and password for every employee. It'd be a hassle for both the network
-administrator and the users themselves if users had separate accounts in LDAP
-and the Django-based applications.
-
-So, to handle situations like this, the Django authentication system lets you
-plug in another authentication sources. You can override Django's default
-database-based scheme, or you can use the default system in tandem with other
-systems.
-
-Specifying authentication backends
-----------------------------------
-
-Behind the scenes, Django maintains a list of "authentication backends" that it
-checks for authentication. When somebody calls
-``django.contrib.auth.authenticate()`` -- as described in "How to log a user in"
-above -- Django tries authenticating across all of its authentication backends.
-If the first authentication method fails, Django tries the second one, and so
-on, until all backends have been attempted.
-
-The list of authentication backends to use is specified in the
-``AUTHENTICATION_BACKENDS`` setting. This should be a tuple of Python path
-names that point to Python classes that know how to authenticate. These classes
-can be anywhere on your Python path.
-
-By default, ``AUTHENTICATION_BACKENDS`` is set to::
-
-    ('django.contrib.auth.backends.ModelBackend',)
-
-That's the basic authentication scheme that checks the Django users database.
-
-The order of ``AUTHENTICATION_BACKENDS`` matters, so if the same username and
-password is valid in multiple backends, Django will stop processing at the
-first positive match.
-
-Writing an authentication backend
----------------------------------
-
-An authentication backend is a class that implements two methods:
-``get_user(user_id)`` and ``authenticate(**credentials)``.
-
-The ``get_user`` method takes a ``user_id`` -- which could be a username,
-database ID or whatever -- and returns a ``User`` object.
-
-The  ``authenticate`` method takes credentials as keyword arguments. Most of
-the time, it'll just look like this::
-
-    class MyBackend:
-        def authenticate(self, username=None, password=None):
-            # Check the username/password and return a User.
-
-But it could also authenticate a token, like so::
-
-    class MyBackend:
-        def authenticate(self, token=None):
-            # Check the token and return a User.
-
-Either way, ``authenticate`` should check the credentials it gets, and it
-should return a ``User`` object that matches those credentials, if the
-credentials are valid. If they're not valid, it should return ``None``.
-
-The Django admin system is tightly coupled to the Django ``User`` object
-described at the beginning of this document. For now, the best way to deal with
-this is to create a Django ``User`` object for each user that exists for your
-backend (e.g., in your LDAP directory, your external SQL database, etc.) You
-can either write a script to do this in advance, or your ``authenticate``
-method can do it the first time a user logs in.
-
-Here's an example backend that authenticates against a username and password
-variable defined in your ``settings.py`` file and creates a Django ``User``
-object the first time a user authenticates::
-
-    from django.conf import settings
-    from django.contrib.auth.models import User, check_password
-
-    class SettingsBackend:
-        """
-        Authenticate against the settings ADMIN_LOGIN and ADMIN_PASSWORD.
-
-        Use the login name, and a hash of the password. For example:
-
-        ADMIN_LOGIN = 'admin'
-        ADMIN_PASSWORD = 'sha1$4e987$afbcf42e21bd417fb71db8c66b321e9fc33051de'
-        """
-        def authenticate(self, username=None, password=None):
-            login_valid = (settings.ADMIN_LOGIN == username)
-            pwd_valid = check_password(password, settings.ADMIN_PASSWORD)
-            if login_valid and pwd_valid:
-                try:
-                    user = User.objects.get(username=username)
-                except User.DoesNotExist:
-                    # Create a new user. Note that we can set password
-                    # to anything, because it won't be checked; the password
-                    # from settings.py will.
-                    user = User(username=username, password='get from settings.py')
-                    user.is_staff = True
-                    user.is_superuser = True
-                    user.save()
-                return user
-            return None
-
-        def get_user(self, user_id):
-            try:
-                return User.objects.get(pk=user_id)
-            except User.DoesNotExist:
-                return None
-
-Handling authorization in custom backends
------------------------------------------
-
-Custom auth backends can provide their own permissions.
-
-The user model will delegate permission lookup functions
-(``get_group_permissions()``, ``get_all_permissions()``, ``has_perm()``, and
-``has_module_perms()``) to any authentication backend that implements these
-functions.
-
-The permissions given to the user will be the superset of all permissions
-returned by all backends. That is, Django grants a permission to a user that any
-one backend grants.
-
-The simple backend above could implement permissions for the magic admin fairly
-simply::
-
-    class SettingsBackend:
-
-        # ...
-
-        def has_perm(self, user_obj, perm):
-            if user_obj.username == settings.ADMIN_LOGIN:
-                return True
-            else:
-                return False
-
-This gives full permissions to the user granted access in the above example. Notice
-that the backend auth functions all take the user object as an argument, and
-they also accept the same arguments given to the associated ``User`` functions.
-
-A full authorization implementation can be found in
-``django/contrib/auth/backends.py`` _, which is the default backend and queries
-the ``auth_permission`` table most of the time.
-
-.. _django/contrib/auth/backends.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/backends.py
diff --git a/docs/conf.py b/docs/conf.py
index 0ced57d57b..38edfffcee 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -12,35 +12,36 @@
 # serve to show the default value.
 
 import sys
+import os
 
 # If your extensions are in another directory, add it here.
-#sys.path.append('some/directory')
+sys.path.append(os.path.join(os.path.dirname(__file__), "_ext"))
 
 # General configuration
 # ---------------------
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-#extensions = []
+extensions = ["djangodocs"]
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = []
+templates_path = ["_templates"]
 
 # The suffix of source filenames.
 source_suffix = '.txt'
 
 # The master toctree document.
-master_doc = 'index'
+master_doc = 'contents'
 
 # General substitutions.
 project = 'Django'
-copyright = '2008, Django Software Foundation'
+copyright = 'Django Software Foundation and contributors'
 
 # The default replacements for |version| and |release|, also used in various
 # other places throughout the built documents.
 #
 # The short X.Y version.
-version = 'SVN'
+version = '1.0'
 # The full version, including alpha/beta/rc tags.
 release = version
 
@@ -65,7 +66,7 @@ add_module_names = False
 show_authors = False
 
 # The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
+pygments_style = 'trac'
 
 
 # Options for HTML output
@@ -79,7 +80,7 @@ html_style = 'default.css'
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = []
+html_static_path = ["_static"]
 
 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
 # using the given strftime format.
@@ -89,6 +90,9 @@ html_last_updated_fmt = '%b %d, %Y'
 # typographically correct entities.
 html_use_smartypants = True
 
+# HTML translator class for the builder
+html_translator_class = "djangodocs.DjangoHTMLTranslator"
+
 # Content template for the index page.
 #html_index = ''
 
@@ -97,7 +101,7 @@ html_use_smartypants = True
 
 # Additional templates that should be rendered to pages, maps page names to
 # template names.
-#html_additional_pages = {}
+html_additional_pages = {}
 
 # If false, no module index is generated.
 #html_use_modindex = True
@@ -121,6 +125,9 @@ htmlhelp_basename = 'Djangodoc'
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, document class [howto/manual]).
 #latex_documents = []
+latex_documents = [
+  ('index', 'django.tex', 'Django Documentation', 'Django Software Foundation', 'manual'),
+]
 
 # Additional stuff for the LaTeX preamble.
 #latex_preamble = ''
@@ -130,3 +137,9 @@ htmlhelp_basename = 'Djangodoc'
 
 # If false, no module index is generated.
 #latex_use_modindex = True
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# If this isn't set to True, the LaTex writer can only handle six levels of headers.
+latex_use_parts = True
+
diff --git a/docs/contents.txt b/docs/contents.txt
new file mode 100644
index 0000000000..e41b77055e
--- /dev/null
+++ b/docs/contents.txt
@@ -0,0 +1,36 @@
+.. _contents:
+
+=============================
+Django documentation contents
+=============================
+
+.. toctree::
+   :maxdepth: 2
+   
+   intro/index
+   topics/index
+   howto/index
+   faq/index
+   ref/index
+   misc/index
+   glossary
+   releases/index
+   internals/index
+
+Indices, glossary and tables
+============================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`glossary`
+
+Deprecated/obsolete documentation
+=================================
+
+The following documentation covers features that have been deprecated or that
+have been replaced in newer versions of Django.
+
+.. toctree::
+   :maxdepth: 2
+   
+   obsolete/index
\ No newline at end of file
diff --git a/docs/contenttypes.txt b/docs/contenttypes.txt
deleted file mode 100644
index 84e38020bc..0000000000
--- a/docs/contenttypes.txt
+++ /dev/null
@@ -1,297 +0,0 @@
-==========================
-The contenttypes framework
-==========================
-
-Django includes a "contenttypes" application that can track all of
-the models installed in your Django-powered project, providing a
-high-level, generic interface for working with your models.
-
-Overview
-========
-
-At the heart of the contenttypes application is the ``ContentType``
-model, which lives at
-``django.contrib.contenttypes.models.ContentType``. Instances of
-``ContentType`` represent and store information about the models
-installed in your project, and new instances of ``ContentType`` are
-automatically created whenever new models are installed.
-
-Instances of ``ContentType`` have methods for returning the model
-classes they represent and for querying objects from those models.
-``ContentType`` also has a `custom manager`_ that adds methods for
-working with ``ContentType`` and for obtaining instances of
-``ContentType`` for a particular model.
-
-Relations between your models and ``ContentType`` can also be used to
-enable "generic" relationships between an instance of one of your
-models and instances of any model you have installed.
-
-.. _custom manager: ../model-api/#custom-managers
-
-Installing the contenttypes framework
-=====================================
-
-The contenttypes framework is included in the default
-``INSTALLED_APPS`` list created by ``django-admin.py startproject``,
-but if you've removed it or if you manually set up your
-``INSTALLED_APPS`` list, you can enable it by adding
-``'django.contrib.contenttypes'`` to your ``INSTALLED_APPS`` setting.
-
-It's generally a good idea to have the contenttypes framework
-installed; several of Django's other bundled applications require it:
-
-    * The admin application uses it to log the history of each object
-      added or changed through the admin interface.
-
-    * Django's `authentication framework`_ uses it to tie user permissions
-      to specific models.
-
-    * Django's comments system (``django.contrib.comments``) uses it to
-      "attach" comments to any installed model.
-
-.. _authentication framework: ../authentication/
-
-The ``ContentType`` model
-=========================
-
-Each instance of ``ContentType`` has three fields which, taken
-together, uniquely describe an installed model:
-
-    ``app_label``
-        The name of the application the model is part of. This is taken from
-        the ``app_label`` attribute of the model, and includes only the *last*
-        part of the application's Python import path;
-        "django.contrib.contenttypes", for example, becomes an ``app_label``
-        of "contenttypes".
-
-    ``model``
-        The name of the model class.
-
-    ``name``
-        The human-readable name of the model. This is taken from
-        `the verbose_name attribute`_ of the model.
-
-Let's look at an example to see how this works. If you already have
-the contenttypes application installed, and then add `the sites application`_
-to your ``INSTALLED_APPS`` setting and run ``manage.py syncdb`` to install it,
-the model ``django.contrib.sites.models.Site`` will be installed into your
-database. Along with it a new instance of ``ContentType`` will be created with
-the following values:
-
-    * ``app_label`` will be set to ``'sites'`` (the last part of the Python
-      path "django.contrib.sites").
-
-    * ``model`` will be set to ``'site'``.
-
-    * ``name`` will be set to ``'site'``.
-
-.. _the verbose_name attribute: ../model-api/#verbose_name
-.. _the sites application: ../sites/
-
-Methods on ``ContentType`` instances
-====================================
-
-Each ``ContentType`` instance has methods that allow you to get from a
-``ContentType`` instance to the model it represents, or to retrieve objects
-from that model:
-
-    ``get_object_for_this_type(**kwargs)``
-        Takes a set of valid `lookup arguments`_ for the model the
-        ``ContentType`` represents, and does `a get() lookup`_ on that
-        model, returning the corresponding object.
-
-    ``model_class()``
-        Returns the model class represented by this ``ContentType``
-        instance.
-
-For example, we could look up the ``ContentType`` for the ``User`` model::
-
-    >>> from django.contrib.contenttypes.models import ContentType
-    >>> user_type = ContentType.objects.get(app_label="auth", model="user")
-    >>> user_type
-    <ContentType: user>
-
-And then use it to query for a particular ``User``, or to get access
-to the ``User`` model class::
-
-    >>> user_type.model_class()
-    <class 'django.contrib.auth.models.User'>
-    >>> user_type.get_object_for_this_type(username='Guido')
-    <User: Guido>
-
-Together, ``get_object_for_this_type`` and ``model_class`` enable two
-extremely important use cases:
-
-    1. Using these methods, you can write high-level generic code that
-       performs queries on any installed model -- instead of importing and
-       using a single specific model class, you can pass an ``app_label``
-       and ``model`` into a ``ContentType`` lookup at runtime, and then
-       work with the model class or retrieve objects from it.
-
-    2. You can relate another model to ``ContentType`` as a way of tying
-       instances of it to particular model classes, and use these methods
-       to get access to those model classes.
-
-Several of Django's bundled applications make use of the latter
-technique. For example, `the permissions system`_ in Django's
-authentication framework uses a ``Permission`` model with a foreign
-key to ``ContentType``; this lets ``Permission`` represent concepts
-like "can add blog entry" or "can delete news story".
-
-.. _lookup arguments: ../db-api/#field-lookups
-.. _a get() lookup: ../db-api/#get-kwargs
-.. _the permissions system: ../authentication/#permissions
-
-The ``ContentTypeManager``
---------------------------
-
-``ContentType`` also has a custom manager, ``ContentTypeManager``,
-which adds the following methods:
-
-    ``clear_cache()``
-        Clears an internal cache used by ``ContentType`` to keep track of which
-        models for which it has created ``ContentType`` instances. You probably
-        won't ever need to call this method yourself; Django will call it
-        automatically when it's needed.
-
-    ``get_for_model(model)``
-        Takes either a model class or an instance of a model, and returns the
-        ``ContentType`` instance representing that model.
-
-The ``get_for_model`` method is especially useful when you know you
-need to work with a ``ContentType`` but don't want to go to the
-trouble of obtaining the model's metadata to perform a manual lookup::
-
-    >>> from django.contrib.auth.models import User
-    >>> user_type = ContentType.objects.get_for_model(User)
-    >>> user_type
-    <ContentType: user>
-
-Generic relations
-=================
-
-Adding a foreign key from one of your own models to ``ContentType``
-allows your model to effectively tie itself to another model class, as
-in the example of the ``Permission`` model above. But it's possible to
-go one step further and use ``ContentType`` to enable truly generic
-(sometimes called "polymorphic") relationships between models.
-
-A simple example is a tagging system, which might look like this::
-
-    from django.db import models
-    from django.contrib.contenttypes.models import ContentType
-    from django.contrib.contenttypes import generic
-
-    class TaggedItem(models.Model):
-        tag = models.SlugField()
-        content_type = models.ForeignKey(ContentType)
-        object_id = models.PositiveIntegerField()
-        content_object = generic.GenericForeignKey('content_type', 'object_id')
-
-        def __unicode__(self):
-            return self.tag
-
-A normal ``ForeignKey`` can only "point to" one other model, which
-means that if the ``TaggedItem`` model used a ``ForeignKey`` it would have to
-choose one and only one model to store tags for. The contenttypes
-application provides a special field type --
-``django.contrib.contenttypes.generic.GenericForeignKey`` -- which
-works around this and allows the relationship to be with any
-model. There are three parts to setting up a ``GenericForeignKey``:
-
-    1. Give your model a ``ForeignKey`` to ``ContentType``.
-
-    2. Give your model a field that can store a primary-key value from the
-       models you'll be relating to. (For most models, this means an
-       ``IntegerField`` or ``PositiveIntegerField``.)
-
-       This field must be of the same type as the primary key of the models
-       that will be involved in the generic relation. For example, if you use
-       ``IntegerField``, you won't be able to form a generic relation with a
-       model that uses a ``CharField`` as a primary key.
-
-    3. Give your model a ``GenericForeignKey``, and pass it the names of
-       the two fields described above. If these fields are named
-       "content_type" and "object_id", you can omit this -- those are the
-       default field names ``GenericForeignKey`` will look for.
-
-This will enable an API similar to the one used for a normal ``ForeignKey``;
-each ``TaggedItem`` will have a ``content_object`` field that returns the
-object it's related to, and you can also assign to that field or use it when
-creating a ``TaggedItem``::
-
-    >>> from django.contrib.auth.models import User
-    >>> guido = User.objects.get(username='Guido')
-    >>> t = TaggedItem(content_object=guido, tag='bdfl')
-    >>> t.save()
-    >>> t.content_object
-    <User: Guido>
-
-Due to the way ``GenericForeignKey`` is implemeneted, you cannot use such
-fields directly with filters (``filter()`` and ``exclude()``, for example) via
-the database API. They aren't normal field objects. These examples will *not*
-work::
-
-	# This will fail
-	>>> TaggedItem.objects.filter(content_object=guido)
-	# This will also fail
-	>>> TaggedItem.objects.get(content_object=guido)
-
-Reverse generic relations
--------------------------
-
-If you know which models you'll be using most often, you can also add
-a "reverse" generic relationship to enable an additional API. For example::
-
-    class Bookmark(models.Model):
-        url = models.URLField()
-        tags = generic.GenericRelation(TaggedItem)
-
-``Bookmark`` instances will each have a ``tags`` attribute, which can
-be used to retrieve their associated ``TaggedItems``::
-
-    >>> b = Bookmark(url='http://www.djangoproject.com/')
-    >>> b.save()
-    >>> t1 = TaggedItem(content_object=b, tag='django')
-    >>> t1.save()
-    >>> t2 = TaggedItem(content_object=b, tag='python')
-    >>> t2.save()
-    >>> b.tags.all()
-    [<TaggedItem: django>, <TaggedItem: python>]
-
-If you don't add the reverse relationship, you can do the lookup manually::
-
-    >>> b = Bookmark.objects.get(url='http://www.djangoproject.com/)
-    >>> bookmark_type = ContentType.objects.get_for_model(b)
-    >>> TaggedItem.objects.filter(content_type__pk=bookmark_type.id,
-    ...                           object_id=b.id)
-    [<TaggedItem: django>, <TaggedItem: python>]
-
-Note that if you delete an object that has a ``GenericRelation``, any objects
-which have a ``GenericForeignKey`` pointing at it will be deleted as well. In
-the example above, this means that if a ``Bookmark`` object were deleted, any
-``TaggedItem`` objects pointing at it would be deleted at the same time.
-
-Generic relations in forms and admin
-------------------------------------
-
-``django.contrib.contenttypes.generic`` provides both a ``GenericInlineFormSet``
-and ``GenericInlineModelAdmin``. This enables the use of generic relations in
-forms and the admin. See the `model formset`_ and `admin`_ documentation for
-more information.
-
-``GenericInlineModelAdmin`` options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ``GenericInlineModelAdmin`` class inherits all properties from an
-``InlineModelAdmin`` class. However, it adds a couple of its own for working
-with the generic relation:
-
-    * ``ct_field`` - The name of the ``ContentType`` foreign key field on the
-      model. Defaults to ``content_type``.
-    
-    * ``ct_fk_field`` - The name of the integer field that represents the ID
-      of the related object. Defaults to ``object_id``.
-
-.. _model formset: ../modelforms/
-.. _admin: ../admin/
diff --git a/docs/db-api.txt b/docs/db-api.txt
deleted file mode 100644
index 75f9cff198..0000000000
--- a/docs/db-api.txt
+++ /dev/null
@@ -1,2421 +0,0 @@
-======================
-Database API reference
-======================
-
-Once you've created your `data models`_, Django automatically gives you a
-database-abstraction API that lets you create, retrieve, update and delete
-objects. This document explains that API.
-
-.. _`data models`: ../model-api/
-
-Throughout this reference, we'll refer to the following models, which comprise
-a weblog application::
-
-    class Blog(models.Model):
-        name = models.CharField(max_length=100)
-        tagline = models.TextField()
-
-        def __unicode__(self):
-            return self.name
-
-    class Author(models.Model):
-        name = models.CharField(max_length=50)
-        email = models.EmailField()
-
-        def __unicode__(self):
-            return self.name
-
-    class Entry(models.Model):
-        blog = models.ForeignKey(Blog)
-        headline = models.CharField(max_length=255)
-        body_text = models.TextField()
-        pub_date = models.DateTimeField()
-        authors = models.ManyToManyField(Author)
-
-        def __unicode__(self):
-            return self.headline
-
-Creating objects
-================
-
-To represent database-table data in Python objects, Django uses an intuitive
-system: A model class represents a database table, and an instance of that
-class represents a particular record in the database table.
-
-To create an object, instantiate it using keyword arguments to the model class,
-then call ``save()`` to save it to the database.
-
-You import the model class from wherever it lives on the Python path, as you
-may expect. (We point this out here because previous Django versions required
-funky model importing.)
-
-Assuming models live in a file ``mysite/blog/models.py``, here's an example::
-
-    from mysite.blog.models import Blog
-    b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
-    b.save()
-
-This performs an ``INSERT`` SQL statement behind the scenes. Django doesn't hit
-the database until you explicitly call ``save()``.
-
-The ``save()`` method has no return value.
-
-To create an object and save it all in one step see the `create`__ method.
-
-__ `create(**kwargs)`_
-
-Auto-incrementing primary keys
-------------------------------
-
-If a model has an ``AutoField`` -- an auto-incrementing primary key -- then
-that auto-incremented value will be calculated and saved as an attribute on
-your object the first time you call ``save()``.
-
-Example::
-
-    b2 = Blog(name='Cheddar Talk', tagline='Thoughts on cheese.')
-    b2.id     # Returns None, because b doesn't have an ID yet.
-    b2.save()
-    b2.id     # Returns the ID of your new object.
-
-There's no way to tell what the value of an ID will be before you call
-``save()``, because that value is calculated by your database, not by Django.
-
-(For convenience, each model has an ``AutoField`` named ``id`` by default
-unless you explicitly specify ``primary_key=True`` on a field. See the
-`AutoField documentation`_.)
-
-.. _AutoField documentation: ../model-api/#autofield
-
-Explicitly specifying auto-primary-key values
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If a model has an ``AutoField`` but you want to define a new object's ID
-explicitly when saving, just define it explicitly before saving, rather than
-relying on the auto-assignment of the ID.
-
-Example::
-
-    b3 = Blog(id=3, name='Cheddar Talk', tagline='Thoughts on cheese.')
-    b3.id     # Returns 3.
-    b3.save()
-    b3.id     # Returns 3.
-
-If you assign auto-primary-key values manually, make sure not to use an
-already-existing primary-key value! If you create a new object with an explicit
-primary-key value that already exists in the database, Django will assume
-you're changing the existing record rather than creating a new one.
-
-Given the above ``'Cheddar Talk'`` blog example, this example would override
-the previous record in the database::
-
-    b4 = Blog(id=3, name='Not Cheddar', tagline='Anything but cheese.')
-    b4.save()  # Overrides the previous blog with ID=3!
-
-See `How Django knows to UPDATE vs. INSERT`_, below, for the reason this
-happens.
-
-Explicitly specifying auto-primary-key values is mostly useful for bulk-saving
-objects, when you're confident you won't have primary-key collision.
-
-What happens when you save?
----------------------------
-
-When you save an object, Django performs the following steps:
-
-    1. **Emit a ``pre_save`` signal.** This provides a notification that
-       an object is about to be saved. You can register a listener that
-       will be invoked whenever this signal is emitted. (These signals are
-       not yet documented.)
-
-    2. **Pre-process the data.** Each field on the object is asked to
-       perform any automated data modification that the field may need
-       to perform.
-
-       Most fields do *no* pre-processing -- the field data is kept as-is.
-       Pre-processing is only used on fields that have special behavior.
-       For example, if your model has a ``DateField`` with ``auto_now=True``,
-       the pre-save phase will alter the data in the object to ensure that
-       the date field contains the current date stamp. (Our documentation
-       doesn't yet include a list of all the fields with this "special
-       behavior.")
-
-    3. **Prepare the data for the database.** Each field is asked to provide
-       its current value in a data type that can be written to the database.
-
-       Most fields require *no* data preparation. Simple data types, such as
-       integers and strings, are 'ready to write' as a Python object. However,
-       more complex data types often require some modification.
-
-       For example, ``DateFields`` use a Python ``datetime`` object to store
-       data. Databases don't store ``datetime`` objects, so the field value
-       must be converted into an ISO-compliant date string for insertion
-       into the database.
-
-    4. **Insert the data into the database.** The pre-processed, prepared
-       data is then composed into an SQL statement for insertion into the
-       database.
-
-    5. **Emit a ``post_save`` signal.** As with the ``pre_save`` signal, this
-       is used to provide notification that an object has been successfully
-       saved. (These signals are not yet documented.)
-
-Saving changes to objects
-=========================
-
-To save changes to an object that's already in the database, use ``save()``.
-
-Given a ``Blog`` instance ``b5`` that has already been saved to the database,
-this example changes its name and updates its record in the database::
-
-    b5.name = 'New name'
-    b5.save()
-
-This performs an ``UPDATE`` SQL statement behind the scenes. Django doesn't hit
-the database until you explicitly call ``save()``.
-
-The ``save()`` method has no return value.
-
-Saving ForeignKey and ManyToManyField fields
---------------------------------------------
-
-Updating ``ForeignKey`` fields works exactly the same way as saving a normal
-field; simply assign an object of the right type to the field in question::
-
-    cheese_blog = Blog.objects.get(name="Cheddar Talk")
-    entry.blog = cheese_blog
-    entry.save()
-
-Updating a ``ManyToManyField`` works a little differently; use the ``add()``
-method on the field to add a record to the relation::
-
-    joe = Author.objects.create(name="Joe")
-    entry.authors.add(joe)
-
-Django will complain if you try to assign or add an object of the wrong type.
-
-How Django knows to UPDATE vs. INSERT
--------------------------------------
-
-You may have noticed Django database objects use the same ``save()`` method
-for creating and changing objects. Django abstracts the need to use ``INSERT``
-or ``UPDATE`` SQL statements. Specifically, when you call ``save()``, Django
-follows this algorithm:
-
-    * If the object's primary key attribute is set to a value that evaluates to
-      ``True`` (i.e., a value other than ``None`` or the empty string), Django
-      executes a ``SELECT`` query to determine whether a record with the given
-      primary key already exists.
-    * If the record with the given primary key does already exist, Django
-      executes an ``UPDATE`` query.
-    * If the object's primary key attribute is *not* set, or if it's set but a
-      record doesn't exist, Django executes an ``INSERT``.
-
-The one gotcha here is that you should be careful not to specify a primary-key
-value explicitly when saving new objects, if you cannot guarantee the
-primary-key value is unused. For more on this nuance, see `Explicitly
-specifying auto-primary-key values`_ above and `Forcing an INSERT or UPDATE`_
-below.
-
-Forcing an INSERT or UPDATE
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-In some rare circumstances, it's necesary to be able to force the ``save()``
-method to perform an SQL ``INSERT`` and not fall back to doing an ``UPDATE``.
-Or vice-versa: update, if possible, but not insert a new row. In these cases
-you can pass the ``force_insert=True`` or ``force_update=True`` parameters to
-the ``save()`` method. Passing both parameters is an error, since you cannot
-both insert *and* update at the same time.
-
-It should be very rare that you'll need to use these parameters. Django will
-almost always do the right thing and trying to override that will lead to
-errors that are difficult to track down. This feature is for advanced use
-only.
-
-Retrieving objects
-==================
-
-To retrieve objects from your database, you construct a ``QuerySet`` via a
-``Manager`` on your model class.
-
-A ``QuerySet`` represents a collection of objects from your database. It can
-have zero, one or many *filters* -- criteria that narrow down the collection
-based on given parameters. In SQL terms, a ``QuerySet`` equates to a ``SELECT``
-statement, and a filter is a limiting clause such as ``WHERE`` or ``LIMIT``.
-
-You get a ``QuerySet`` by using your model's ``Manager``. Each model has at
-least one ``Manager``, and it's called ``objects`` by default. Access it
-directly via the model class, like so::
-
-    Blog.objects  # <django.db.models.manager.Manager object at ...>
-    b = Blog(name='Foo', tagline='Bar')
-    b.objects     # AttributeError: "Manager isn't accessible via Blog instances."
-
-(``Managers`` are accessible only via model classes, rather than from model
-instances, to enforce a separation between "table-level" operations and
-"record-level" operations.)
-
-The ``Manager`` is the main source of ``QuerySets`` for a model. It acts as a
-"root" ``QuerySet`` that describes all objects in the model's database table.
-For example, ``Blog.objects`` is the initial ``QuerySet`` that contains all
-``Blog`` objects in the database.
-
-Retrieving all objects
-----------------------
-
-The simplest way to retrieve objects from a table is to get all of them.
-To do this, use the ``all()`` method on a ``Manager``.
-
-Example::
-
-    all_entries = Entry.objects.all()
-
-The ``all()`` method returns a ``QuerySet`` of all the objects in the database.
-
-(If ``Entry.objects`` is a ``QuerySet``, why can't we just do ``Entry.objects``?
-That's because ``Entry.objects``, the root ``QuerySet``, is a special case
-that cannot be evaluated. The ``all()`` method returns a ``QuerySet`` that
-*can* be evaluated.)
-
-Filtering objects
------------------
-
-The root ``QuerySet`` provided by the ``Manager`` describes all objects in the
-database table. Usually, though, you'll need to select only a subset of the
-complete set of objects.
-
-To create such a subset, you refine the initial ``QuerySet``, adding filter
-conditions. The two most common ways to refine a ``QuerySet`` are:
-
-``filter(**kwargs)``
-    Returns a new ``QuerySet`` containing objects that match the given lookup
-    parameters.
-
-``exclude(**kwargs)``
-    Returns a new ``QuerySet`` containing objects that do *not* match the given
-    lookup parameters.
-
-The lookup parameters (``**kwargs`` in the above function definitions) should
-be in the format described in `Field lookups`_ below.
-
-For example, to get a ``QuerySet`` of blog entries from the year 2006, use
-``filter()`` like so::
-
-    Entry.objects.filter(pub_date__year=2006)
-
-(Note we don't have to add an ``all()`` -- ``Entry.objects.all().filter(...)``.
-That would still work, but you only need ``all()`` when you want all objects
-from the root ``QuerySet``.)
-
-Chaining filters
-~~~~~~~~~~~~~~~~
-
-The result of refining a ``QuerySet`` is itself a ``QuerySet``, so it's
-possible to chain refinements together. For example::
-
-    Entry.objects.filter(
-        headline__startswith='What').exclude(
-            pub_date__gte=datetime.now()).filter(
-                pub_date__gte=datetime(2005, 1, 1))
-
-...takes the initial ``QuerySet`` of all entries in the database, adds a
-filter, then an exclusion, then another filter. The final result is a
-``QuerySet`` containing all entries with a headline that starts with "What",
-that were published between January 1, 2005, and the current day.
-
-Filtered QuerySets are unique
------------------------------
-
-Each time you refine a ``QuerySet``, you get a brand-new ``QuerySet`` that is
-in no way bound to the previous ``QuerySet``. Each refinement creates a
-separate and distinct ``QuerySet`` that can be stored, used and reused.
-
-Example::
-
-    q1 = Entry.objects.filter(headline__startswith="What")
-    q2 = q1.exclude(pub_date__gte=datetime.now())
-    q3 = q1.filter(pub_date__gte=datetime.now())
-
-These three ``QuerySets`` are separate. The first is a base ``QuerySet``
-containing all entries that contain a headline starting with "What". The second
-is a subset of the first, with an additional criteria that excludes records
-whose ``pub_date`` is greater than now. The third is a subset of the first,
-with an additional criteria that selects only the records whose ``pub_date`` is
-greater than now. The initial ``QuerySet`` (``q1``) is unaffected by the
-refinement process.
-
-QuerySets are lazy
-------------------
-
-``QuerySets`` are lazy -- the act of creating a ``QuerySet`` doesn't involve
-any database activity. You can stack filters together all day long, and Django
-won't actually run the query until the ``QuerySet`` is *evaluated*.
-
-When QuerySets are evaluated
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can evaluate a ``QuerySet`` in the following ways:
-
-    * **Iteration.** A ``QuerySet`` is iterable, and it executes its database
-      query the first time you iterate over it. For example, this will print
-      the headline of all entries in the database::
-
-          for e in Entry.objects.all():
-              print e.headline
-
-    * **Slicing.** As explained in `Limiting QuerySets`_ below, a ``QuerySet``
-      can be sliced, using Python's array-slicing syntax. Usually slicing a
-      ``QuerySet`` returns another (unevaluated )``QuerySet``, but Django will
-      execute the database query if you use the "step" parameter of slice
-      syntax.
-
-    * **repr().** A ``QuerySet`` is evaluated when you call ``repr()`` on it.
-      This is for convenience in the Python interactive interpreter, so you can
-      immediately see your results when using the API interactively.
-
-    * **len().** A ``QuerySet`` is evaluated when you call ``len()`` on it.
-      This, as you might expect, returns the length of the result list.
-
-      Note: *Don't* use ``len()`` on ``QuerySet``\s if all you want to do is
-      determine the number of records in the set. It's much more efficient to
-      handle a count at the database level, using SQL's ``SELECT COUNT(*)``,
-      and Django provides a ``count()`` method for precisely this reason. See
-      ``count()`` below.
-
-    * **list().** Force evaluation of a ``QuerySet`` by calling ``list()`` on
-      it. For example::
-
-          entry_list = list(Entry.objects.all())
-
-      Be warned, though, that this could have a large memory overhead, because
-      Django will load each element of the list into memory. In contrast,
-      iterating over a ``QuerySet`` will take advantage of your database to
-      load data and instantiate objects only as you need them.
-
-
-Pickling QuerySets
-~~~~~~~~~~~~~~~~~~
-
-If you pickle_ a ``QuerySet``, this will also force all the results to be
-loaded into memory prior to pickling. This is because pickling is usually used
-as a precursor to caching and when the cached ``QuerySet`` is reloaded, you want
-the results to already be present. This means that when you unpickle a
-``QuerySet``, it contains the results at the moment it was pickled, rather
-than the results that are currently in the database.
-
-If you only want to pickle the necessary information to recreate the
-``Queryset`` from the database at a later time, pickle the ``query`` attribute
-of the ``QuerySet``. You can then recreate the original ``QuerySet`` (without
-any results loaded) using some code like this::
-
-    >>> import pickle
-    >>> query = pickle.loads(s)     # Assuming 's' is the pickled string.
-    >>> qs = MyModel.objects.all()
-    >>> qs.query = query            # Restore the original 'query'.
-
-.. _pickle: http://docs.python.org/lib/module-pickle.html
-
-Limiting QuerySets
-------------------
-
-Use Python's array-slicing syntax to limit your ``QuerySet`` to a certain
-number of results. This is the equivalent of SQL's ``LIMIT`` and ``OFFSET``
-clauses.
-
-For example, this returns the first 5 objects (``LIMIT 5``)::
-
-    Entry.objects.all()[:5]
-
-This returns the sixth through tenth objects (``OFFSET 5 LIMIT 5``)::
-
-    Entry.objects.all()[5:10]
-
-You can also slice from the item ''N'' to the end of the queryset. For
-example, to return everything from the sixth item onwards::
-
-    Entry.objects.all()[5:]
-
-How this last example is implemented in SQL varies depending upon the database
-used, but it is supported in all cases.
-
-Generally, slicing a ``QuerySet`` returns a new ``QuerySet`` -- it doesn't
-evaluate the query. An exception is if you use the "step" parameter of Python
-slice syntax. For example, this would actually execute the query in order to
-return a list of every *second* object of the first 10::
-
-    Entry.objects.all()[:10:2]
-
-To retrieve a *single* object rather than a list
-(e.g. ``SELECT foo FROM bar LIMIT 1``), use a simple index instead of a
-slice. For example, this returns the first ``Entry`` in the database, after
-ordering entries alphabetically by headline::
-
-    Entry.objects.order_by('headline')[0]
-
-This is roughly equivalent to::
-
-    Entry.objects.order_by('headline')[0:1].get()
-
-Note, however, that the first of these will raise ``IndexError`` while the
-second will raise ``DoesNotExist`` if no objects match the given criteria.
-
-Combining QuerySets
--------------------
-
-If you have two ``QuerySet`` instances that act on the same model, you can
-combine them using ``&`` and ``|`` to get the items that are in both result
-sets or in either results set, respectively. For example::
-
-    Entry.objects.filter(pubdate__gte=date1) & \
-            Entry.objects.filter(headline__startswith="What")
-
-will combine the two queries into a single SQL query. Of course, in this case
-you could have achieved the same result using multiple filters on the same
-``QuerySet``, but sometimes the ability to combine individual ``QuerySet``
-instance is useful.
-
-Be careful, if you are using ``extra()`` to add custom handling to your
-``QuerySet`` however. All the ``extra()`` components are merged and the result
-may or may not make sense. If you are using custom SQL fragments in your
-``extra()`` calls, Django will not inspect these fragments to see if they need
-to be rewritten because of changes in the merged query. So test the effects
-carefully. Also realize that if you are combining two ``QuerySets`` with
-``|``, you cannot use ``extra(select=...)`` or ``extra(where=...)`` on *both*
-``QuerySets``. You can only use those calls on one or the other (Django will
-raise a ``ValueError`` if you try to use this incorrectly).
-
-QuerySet methods that return new QuerySets
-------------------------------------------
-
-Django provides a range of ``QuerySet`` refinement methods that modify either
-the types of results returned by the ``QuerySet`` or the way its SQL query is
-executed.
-
-``filter(**kwargs)``
-~~~~~~~~~~~~~~~~~~~~
-
-Returns a new ``QuerySet`` containing objects that match the given lookup
-parameters.
-
-The lookup parameters (``**kwargs``) should be in the format described in
-`Field lookups`_ below. Multiple parameters are joined via ``AND`` in the
-underlying SQL statement.
-
-``exclude(**kwargs)``
-~~~~~~~~~~~~~~~~~~~~~
-
-Returns a new ``QuerySet`` containing objects that do *not* match the given
-lookup parameters.
-
-The lookup parameters (``**kwargs``) should be in the format described in
-`Field lookups`_ below. Multiple parameters are joined via ``AND`` in the
-underlying SQL statement, and the whole thing is enclosed in a ``NOT()``.
-
-This example excludes all entries whose ``pub_date`` is later than 2005-1-3
-AND whose ``headline`` is "Hello"::
-
-    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3), headline='Hello')
-
-In SQL terms, that evaluates to::
-
-    SELECT ...
-    WHERE NOT (pub_date > '2005-1-3' AND headline = 'Hello')
-
-This example excludes all entries whose ``pub_date`` is later than 2005-1-3
-OR whose headline is "Hello"::
-
-    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3)).exclude(headline='Hello')
-
-In SQL terms, that evaluates to::
-
-    SELECT ...
-    WHERE NOT pub_date > '2005-1-3'
-    AND NOT headline = 'Hello'
-
-Note the second example is more restrictive.
-
-``order_by(*fields)``
-~~~~~~~~~~~~~~~~~~~~~
-
-By default, results returned by a ``QuerySet`` are ordered by the ordering
-tuple given by the ``ordering`` option in the model's ``Meta``. You can
-override this on a per-``QuerySet`` basis by using the ``order_by`` method.
-
-Example::
-
-    Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')
-
-The result above will be ordered by ``pub_date`` descending, then by
-``headline`` ascending. The negative sign in front of ``"-pub_date"`` indicates
-*descending* order. Ascending order is implied. To order randomly, use ``"?"``,
-like so::
-
-    Entry.objects.order_by('?')
-
-Note: ``order_by('?')`` queries may be expensive and slow, depending on the
-database backend you're using.
-
-To order by a field in a different model, use the same syntax as when you are
-querying across model relations. That is, the name of the field, followed by a
-double underscore (``__``), followed by the name of the field in the new model,
-and so on for as many models as you want to join. For example::
-
-    Entry.objects.order_by('blog__name', 'headline')
-
-If you try to order by a field that is a relation to another model, Django will
-use the default ordering on the related model (or order by the related model's
-primary key if there is no ``Meta.ordering`` specified. For example::
-
-    Entry.objects.order_by('blog')
-
-...is identical to::
-
-    Entry.objects.order_by('blog__id')
-
-...since the ``Blog`` model has no default ordering specified.
-
-Be cautious when ordering by fields in related models if you are also using
-``distinct()``. See the note in the `distinct()`_ section for an explanation
-of how related model ordering can change the expected results.
-
-It is permissible to specify a multi-valued field to order the results by (for
-example, a ``ManyToMany`` field). Normally this won't be a sensible thing to
-do and it's really an advanced usage feature. However, if you know that your
-queryset's filtering or available data implies that there will only be one
-ordering piece of data for each of the main items you are selecting, the
-ordering may well be exactly what you want to do. Use ordering on multi-valued
-fields with care and make sure the results are what you expect.
-
-**New in Django development version:** If you don't want any ordering to be
-applied to a query, not even the default ordering, call ``order_by()`` with no
-parameters.
-
-**New in Django development version:** The syntax for ordering across related
-models has changed. See the `Django 0.96 documentation`_ for the old behavior.
-
-.. _Django 0.96 documentation: http://www.djangoproject.com/documentation/0.96/model-api/#floatfield
-
-There's no way to specify whether ordering should be case sensitive. With
-respect to case-sensitivity, Django will order results however your database
-backend normally orders them.
-
-``reverse()``
-~~~~~~~~~~~~~
-
-**New in Django development version**
-
-Use the ``reverse()`` method to reverse the order in which a queryset's
-elements are returned. Calling ``reverse()`` a second time restores the
-ordering back to the normal direction.
-
-To retrieve the ''last'' five items in a queryset, you could do this::
-
-    my_queryset.reverse()[:5]
-
-Note that this is not quite the same as slicing from the end of a sequence in
-Python. The above example will return the last item first, then the
-penultimate item and so on. If we had a Python sequence and looked at
-``seq[:-5]``, we would see the fifth-last item first. Django doesn't support
-that mode of access (slicing from the end), because it's not possible to do it
-efficiently in SQL.
-
-Also, note that ``reverse()`` should generally only be called on a
-``QuerySet`` which has a defined ordering (e.g., when querying against
-a model which defines a default ordering, or when using
-``order_by()``). If no such ordering is defined for a given
-``QuerySet``, calling ``reverse()`` on it has no real effect (the
-ordering was undefined prior to calling ``reverse()``, and will remain
-undefined afterward).
-
-
-``distinct()``
-~~~~~~~~~~~~~~
-
-Returns a new ``QuerySet`` that uses ``SELECT DISTINCT`` in its SQL query. This
-eliminates duplicate rows from the query results.
-
-By default, a ``QuerySet`` will not eliminate duplicate rows. In practice, this
-is rarely a problem, because simple queries such as ``Blog.objects.all()``
-don't introduce the possibility of duplicate result rows. However, if your
-query spans multiple tables, it's possible to get duplicate results when a
-``QuerySet`` is evaluated. That's when you'd use ``distinct()``.
-
-.. note::
-    Any fields used in an ``order_by()`` call are included in the SQL
-    ``SELECT`` columns. This can sometimes lead to unexpected results when
-    used in conjunction with ``distinct()``. If you order by fields from a
-    related model, those fields will be added to the selected columns and they
-    may make otherwise duplicate rows appear to be distinct. Since the extra
-    columns don't appear in the returned results (they are only there to
-    support ordering), it sometimes looks like non-distinct results are being
-    returned.
-
-    Similarly, if you use a ``values()`` query to restrict the columns
-    selected, the columns used in any ``order_by()`` (or default model
-    ordering) will still be involved and may affect uniqueness of the results.
-
-    The moral here is that if you are using ``distinct()`` be careful about
-    ordering by related models. Similarly, when using ``distinct()`` and
-    ``values()`` together, be careful when ordering by fields not in the
-    ``values()`` call.
-
-``values(*fields)``
-~~~~~~~~~~~~~~~~~~~
-
-Returns a ``ValuesQuerySet`` -- a ``QuerySet`` that evaluates to a list of
-dictionaries instead of model-instance objects.
-
-Each of those dictionaries represents an object, with the keys corresponding to
-the attribute names of model objects.
-
-This example compares the dictionaries of ``values()`` with the normal model
-objects::
-
-    # This list contains a Blog object.
-    >>> Blog.objects.filter(name__startswith='Beatles')
-    [Beatles Blog]
-
-    # This list contains a dictionary.
-    >>> Blog.objects.filter(name__startswith='Beatles').values()
-    [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
-
-``values()`` takes optional positional arguments, ``*fields``, which specify
-field names to which the ``SELECT`` should be limited. If you specify the
-fields, each dictionary will contain only the field keys/values for the fields
-you specify. If you don't specify the fields, each dictionary will contain a
-key and value for every field in the database table.
-
-Example::
-
-    >>> Blog.objects.values()
-    [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}],
-    >>> Blog.objects.values('id', 'name')
-    [{'id': 1, 'name': 'Beatles Blog'}]
-
-You can also retrieve values from across ``ForeignKey`` relations by using
-double underscores to separate the field names, just as when calling the
-``filter()`` command. For example::
-
-    >>> Entry.objects.values('blog__name').distinct()
-    [{'name': 'Beatles Blog'}]
-
-A couple of subtleties that are worth mentioning:
-
-    * The ``values()`` method does not return anything for ``ManyToManyField``
-      attributes and will raise an error if you try to pass in this type of
-      field to it.
-    * If you have a field called ``foo`` that is a ``ForeignKey``, the default
-      ``values()`` call will return a dictionary key called ``foo_id``, since
-      this is the name of the hidden model attribute that stores the actual
-      value (the ``foo`` attribute refers to the related model). When you are
-      calling ``values()`` and passing in field names, you can pass in either
-      ``foo`` or ``foo_id`` and you will get back the same thing (the
-      dictionary key will match the field name you passed in).
-
-      For example::
-
-        >>> Entry.objects.values()
-        [{'blog_id: 1, 'headline': u'First Entry', ...}, ...]
-
-        >>> Entry.objects.values('blog')
-        [{'blog': 1}, ...]
-
-        >>> Entry.objects.values('blog_id')
-        [{'blog_id': 1}, ...]
-    * When using ``values()`` together with ``distinct()``, be aware that
-      ordering can affect the results. See the note in the `distinct()`_
-      section, above, for details.
-
-**New in Django development version:** Previously, it was not possible to pass
-``blog_id`` to ``values()`` in the above example, only ``blog``.
-
-A ``ValuesQuerySet`` is useful when you know you're only going to need values
-from a small number of the available fields and you won't need the
-functionality of a model instance object. It's more efficient to select only
-the fields you need to use.
-
-Finally, note a ``ValuesQuerySet`` is a subclass of ``QuerySet``, so it has all
-methods of ``QuerySet``. You can call ``filter()`` on it, or ``order_by()``, or
-whatever. Yes, that means these two calls are identical::
-
-    Blog.objects.values().order_by('id')
-    Blog.objects.order_by('id').values()
-
-The people who made Django prefer to put all the SQL-affecting methods first,
-followed (optionally) by any output-affecting methods (such as ``values()``),
-but it doesn't really matter. This is your chance to really flaunt your
-individualism.
-
-``values_list(*fields)``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-This is similar to ``values()`` except that instead of returning a list of
-dictionaries, it returns a list of tuples. Each tuple contains the value from
-the respective field passed into the ``values_list()`` call -- so the first
-item is the first field, etc. For example::
-
-    >>> Entry.objects.values_list('id', 'headline')
-    [(1, u'First entry'), ...]
-
-If you only pass in a single field, you can also pass in the ``flat``
-parameter. If ``True``, this will mean the returned results are single values,
-rather than one-tuples. An example should make the difference clearer::
-
-    >>> Entry.objects.values_list('id').order_by('id')
-    [(1,), (2,), (3,), ...]
-
-    >>> Entry.objects.values_list('id', flat=True).order_by('id')
-    [1, 2, 3, ...]
-
-It is an error to pass in ``flat`` when there is more than one field.
-
-If you don't pass any values to ``values_list()``, it will return all the
-fields in the model, in the order they were declared.
-
-``dates(field, kind, order='ASC')``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Returns a ``DateQuerySet`` -- a ``QuerySet`` that evaluates to a list of
-``datetime.datetime`` objects representing all available dates of a particular
-kind within the contents of the ``QuerySet``.
-
-``field`` should be the name of a ``DateField`` or ``DateTimeField`` of your
-model.
-
-``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each
-``datetime.datetime`` object in the result list is "truncated" to the given
-``type``.
-
-    * ``"year"`` returns a list of all distinct year values for the field.
-    * ``"month"`` returns a list of all distinct year/month values for the field.
-    * ``"day"`` returns a list of all distinct year/month/day values for the field.
-
-``order``, which defaults to ``'ASC'``, should be either ``'ASC'`` or
-``'DESC'``. This specifies how to order the results.
-
-Examples::
-
-    >>> Entry.objects.dates('pub_date', 'year')
-    [datetime.datetime(2005, 1, 1)]
-    >>> Entry.objects.dates('pub_date', 'month')
-    [datetime.datetime(2005, 2, 1), datetime.datetime(2005, 3, 1)]
-    >>> Entry.objects.dates('pub_date', 'day')
-    [datetime.datetime(2005, 2, 20), datetime.datetime(2005, 3, 20)]
-    >>> Entry.objects.dates('pub_date', 'day', order='DESC')
-    [datetime.datetime(2005, 3, 20), datetime.datetime(2005, 2, 20)]
-    >>> Entry.objects.filter(headline__contains='Lennon').dates('pub_date', 'day')
-    [datetime.datetime(2005, 3, 20)]
-
-``none()``
-~~~~~~~~~~
-
-**New in Django development version**
-
-Returns an ``EmptyQuerySet`` -- a ``QuerySet`` that always evaluates to
-an empty list. This can be used in cases where you know that you should
-return an empty result set and your caller is expecting a ``QuerySet``
-object (instead of returning an empty list, for example.)
-
-Examples::
-
-    >>> Entry.objects.none()
-    []
-
-``all()``
-~~~~~~~~~~
-
-**New in Django development version**
-
-Returns a ''copy'' of the current ``QuerySet`` (or ``QuerySet`` subclass you
-pass in). This can be useful in some situations where you might want to pass
-in either a model manager or a ``QuerySet`` and do further filtering on the
-result. You can safely call ``all()`` on either object and then you'll
-definitely have a ``QuerySet`` to work with.
-
-``select_related()``
-~~~~~~~~~~~~~~~~~~~~
-
-Returns a ``QuerySet`` that will automatically "follow" foreign-key
-relationships, selecting that additional related-object data when it executes
-its query. This is a performance booster which results in (sometimes much)
-larger queries but means later use of foreign-key relationships won't require
-database queries.
-
-The following examples illustrate the difference between plain lookups and
-``select_related()`` lookups. Here's standard lookup::
-
-    # Hits the database.
-    e = Entry.objects.get(id=5)
-
-    # Hits the database again to get the related Blog object.
-    b = e.blog
-
-And here's ``select_related`` lookup::
-
-    # Hits the database.
-    e = Entry.objects.select_related().get(id=5)
-
-    # Doesn't hit the database, because e.blog has been prepopulated
-    # in the previous query.
-    b = e.blog
-
-``select_related()`` follows foreign keys as far as possible. If you have the
-following models::
-
-    class City(models.Model):
-        # ...
-
-    class Person(models.Model):
-        # ...
-        hometown = models.ForeignKey(City)
-
-    class Book(models.Model):
-        # ...
-        author = models.ForeignKey(Person)
-
-...then a call to ``Book.objects.select_related().get(id=4)`` will cache the
-related ``Person`` *and* the related ``City``::
-
-    b = Book.objects.select_related().get(id=4)
-    p = b.author         # Doesn't hit the database.
-    c = p.hometown       # Doesn't hit the database.
-
-    b = Book.objects.get(id=4) # No select_related() in this example.
-    p = b.author         # Hits the database.
-    c = p.hometown       # Hits the database.
-
-Note that, by default, ``select_related()`` does not follow foreign keys that
-have ``null=True``.
-
-Usually, using ``select_related()`` can vastly improve performance because your
-app can avoid many database calls. However, in situations with deeply nested
-sets of relationships ``select_related()`` can sometimes end up following "too
-many" relations, and can generate queries so large that they end up being slow.
-
-In these situations, you can use the ``depth`` argument to ``select_related()``
-to control how many "levels" of relations ``select_related()`` will actually
-follow::
-
-    b = Book.objects.select_related(depth=1).get(id=4)
-    p = b.author         # Doesn't hit the database.
-    c = p.hometown       # Requires a database call.
-
-The ``depth`` argument is new in the Django development version.
-
-**New in Django development version:** Sometimes you only need to access
-specific models that are related to your root model, not all of the related
-models. In these cases, you can pass the related field names to
-``select_related()`` and it will only follow those relations. You can even do
-this for models that are more than one relation away by separating the field
-names with double underscores, just as for filters. For example, if we have
-this model::
-
-    class Room(models.Model):
-        # ...
-        building = models.ForeignKey(...)
-
-    class Group(models.Model):
-        # ...
-        teacher = models.ForeignKey(...)
-        room = models.ForeignKey(Room)
-        subject = models.ForeignKey(...)
-
-...and we only needed to work with the ``room`` and ``subject`` attributes, we
-could write this::
-
-    g = Group.objects.select_related('room', 'subject')
-
-This is also valid::
-
-    g = Group.objects.select_related('room__building', 'subject')
-
-...and would also pull in the ``building`` relation.
-
-You can only refer to ``ForeignKey`` relations in the list of fields passed to
-``select_related``. You *can* refer to foreign keys that have ``null=True``
-(unlike the default ``select_related()`` call). It's an error to use both a
-list of fields and the ``depth`` parameter in the same ``select_related()``
-call, since they are conflicting options.
-
-``extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Sometimes, the Django query syntax by itself can't easily express a complex
-``WHERE`` clause. For these edge cases, Django provides the ``extra()``
-``QuerySet`` modifier -- a hook for injecting specific clauses into the SQL
-generated by a ``QuerySet``.
-
-By definition, these extra lookups may not be portable to different database
-engines (because you're explicitly writing SQL code) and violate the DRY
-principle, so you should avoid them if possible.
-
-Specify one or more of ``params``, ``select``, ``where`` or ``tables``. None
-of the arguments is required, but you should use at least one of them.
-
-``select``
-    The ``select`` argument lets you put extra fields in the ``SELECT`` clause.
-    It should be a dictionary mapping attribute names to SQL clauses to use to
-    calculate that attribute.
-
-    Example::
-
-        Entry.objects.extra(select={'is_recent': "pub_date > '2006-01-01'"})
-
-    As a result, each ``Entry`` object will have an extra attribute,
-    ``is_recent``, a boolean representing whether the entry's ``pub_date`` is
-    greater than Jan. 1, 2006.
-
-    Django inserts the given SQL snippet directly into the ``SELECT``
-    statement, so the resulting SQL of the above example would be::
-
-        SELECT blog_entry.*, (pub_date > '2006-01-01')
-        FROM blog_entry;
-
-
-    The next example is more advanced; it does a subquery to give each
-    resulting ``Blog`` object an ``entry_count`` attribute, an integer count
-    of associated ``Entry`` objects::
-
-        Blog.objects.extra(
-            select={
-                'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id'
-            },
-        )
-
-    (In this particular case, we're exploiting the fact that the query will
-    already contain the ``blog_blog`` table in its ``FROM`` clause.)
-
-    The resulting SQL of the above example would be::
-
-        SELECT blog_blog.*, (SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id)
-        FROM blog_blog;
-
-    Note that the parenthesis required by most database engines around
-    subqueries are not required in Django's ``select`` clauses. Also note that
-    some database backends, such as some MySQL versions, don't support
-    subqueries.
-
-    **New in Django development version**
-    In some rare cases, you might wish to pass parameters to the SQL fragments
-    in ``extra(select=...)```. For this purpose, use the ``select_params``
-    parameter. Since ``select_params`` is a sequence and the ``select``
-    attribute is a dictionary, some care is required so that the parameters
-    are matched up correctly with the extra select pieces.  In this situation,
-    you should use a ``django.utils.datastructures.SortedDict`` for the
-    ``select`` value, not just a normal Python dictionary.
-
-    This will work, for example::
-
-        Blog.objects.extra(
-            select=SortedDict([('a', '%s'), ('b', '%s')]),
-            select_params=('one', 'two'))
-
-    The only thing to be careful about when using select parameters in
-    ``extra()`` is to avoid using the substring ``"%%s"`` (that's *two*
-    percent characters before the ``s``) in the select strings. Django's
-    tracking of parameters looks for ``%s`` and an escaped ``%`` character
-    like this isn't detected. That will lead to incorrect results.
-
-``where`` / ``tables``
-    You can define explicit SQL ``WHERE`` clauses -- perhaps to perform
-    non-explicit joins -- by using ``where``. You can manually add tables to
-    the SQL ``FROM`` clause by using ``tables``.
-
-    ``where`` and ``tables`` both take a list of strings. All ``where``
-    parameters are "AND"ed to any other search criteria.
-
-    Example::
-
-        Entry.objects.extra(where=['id IN (3, 4, 5, 20)'])
-
-    ...translates (roughly) into the following SQL::
-
-        SELECT * FROM blog_entry WHERE id IN (3, 4, 5, 20);
-
-    Be careful when using the ``tables`` parameter if you're specifying
-    tables that are already used in the query. When you add extra tables
-    via the ``tables`` parameter, Django assumes you want that table included
-    an extra time, if it is already included. That creates a problem,
-    since the table name will then be given an alias. If a table appears
-    multiple times in an SQL statement, the second and subsequent occurrences
-    must use aliases so the database can tell them apart. If you're
-    referring to the extra table you added in the extra ``where`` parameter
-    this is going to cause errors.
-
-    Normally you'll only be adding extra tables that don't already appear in
-    the query. However, if the case outlined above does occur, there are a few
-    solutions. First, see if you can get by without including the extra table
-    and use the one already in the query. If that isn't possible, put your
-    ``extra()`` call at the front of the queryset construction so that your
-    table is the first use of that table. Finally, if all else fails, look at
-    the query produced and rewrite your ``where`` addition to use the alias
-    given to your extra table. The alias will be the same each time you
-    construct the queryset in the same way, so you can rely upon the alias
-    name to not change.
-
-``order_by``
-    If you need to order the resulting queryset using some of the new fields
-    or tables you have included via ``extra()`` use the ``order_by`` parameter
-    to ``extra()`` and pass in a sequence of strings. These strings should
-    either be model fields (as in the normal ``order_by()`` method on
-    querysets), of the form ``table_name.column_name`` or an alias for a column
-    that you specified in the ``select`` parameter to ``extra()``.
-
-    For example::
-
-        q = Entry.objects.extra(select={'is_recent': "pub_date > '2006-01-01'"})
-        q = q.extra(order_by = ['-is_recent'])
-
-    This would sort all the items for which ``is_recent`` is true to the front
-    of the result set (``True`` sorts before ``False`` in a descending
-    ordering).
-
-    This shows, by the way, that you can make multiple calls to
-    ``extra()`` and it will behave as you expect (adding new constraints each
-    time).
-
-``params``
-    The ``where`` parameter described above may use standard Python database
-    string placeholders -- ``'%s'`` to indicate parameters the database engine
-    should automatically quote. The ``params`` argument is a list of any extra
-    parameters to be substituted.
-
-    Example::
-
-        Entry.objects.extra(where=['headline=%s'], params=['Lennon'])
-
-    Always use ``params`` instead of embedding values directly into ``where``
-    because ``params`` will ensure values are quoted correctly according to
-    your particular backend. (For example, quotes will be escaped correctly.)
-
-    Bad::
-
-        Entry.objects.extra(where=["headline='Lennon'"])
-
-    Good::
-
-        Entry.objects.extra(where=['headline=%s'], params=['Lennon'])
-
-**New in Django development version** The ``select_params`` argument to
-``extra()`` is new. Previously, you could attempt to pass parameters for
-``select`` in the ``params`` argument, but it worked very unreliably.
-
-QuerySet methods that do not return QuerySets
----------------------------------------------
-
-The following ``QuerySet`` methods evaluate the ``QuerySet`` and return
-something *other than* a ``QuerySet``.
-
-These methods do not use a cache (see `Caching and QuerySets`_ below). Rather,
-they query the database each time they're called.
-
-``get(**kwargs)``
-~~~~~~~~~~~~~~~~~
-
-Returns the object matching the given lookup parameters, which should be in
-the format described in `Field lookups`_.
-
-``get()`` raises ``MultipleObjectsReturned`` if more than one object was found.
-The ``MultipleObjectsReturned`` exception is an attribute of the model class.
-For example, the following will raise ``MultipleObjectsReturned`` if there
-are more than one authors with the name of 'John'::
-
-	Author.objects.get(name='John') # raises Author.MultipleObjectsReturned
-
-``get()`` raises a ``DoesNotExist`` exception if an object wasn't found for the
-given parameters. The ``DoesNotExist`` exception is an attribute of the model
-class. Example::
-
-    Entry.objects.get(id='foo') # raises Entry.DoesNotExist
-
-The ``DoesNotExist`` exception inherits from
-``django.core.exceptions.ObjectDoesNotExist``, so you can target multiple
-``DoesNotExist`` exceptions. Example::
-
-    from django.core.exceptions import ObjectDoesNotExist
-    try:
-        e = Entry.objects.get(id=3)
-        b = Blog.objects.get(id=1)
-    except ObjectDoesNotExist:
-        print "Either the entry or blog doesn't exist."
-
-``create(**kwargs)``
-~~~~~~~~~~~~~~~~~~~~
-
-A convenience method for creating an object and saving it all in one step.  Thus::
-
-    p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
-
-and::
-
-    p = Person(first_name="Bruce", last_name="Springsteen")
-    p.save()
-
-are equivalent.
-
-``get_or_create(**kwargs)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A convenience method for looking up an object with the given kwargs, creating
-one if necessary.
-
-Returns a tuple of ``(object, created)``, where ``object`` is the retrieved or
-created object and ``created`` is a boolean specifying whether a new object was
-created.
-
-This is meant as a shortcut to boilerplatish code and is mostly useful for
-data-import scripts. For example::
-
-    try:
-        obj = Person.objects.get(first_name='John', last_name='Lennon')
-    except Person.DoesNotExist:
-        obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
-        obj.save()
-
-This pattern gets quite unwieldy as the number of fields in a model goes up.
-The above example can be rewritten using ``get_or_create()`` like so::
-
-    obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon',
-                      defaults={'birthday': date(1940, 10, 9)})
-
-Any keyword arguments passed to ``get_or_create()`` -- *except* an optional one
-called ``defaults`` -- will be used in a ``get()`` call. If an object is found,
-``get_or_create()`` returns a tuple of that object and ``False``. If an object
-is *not* found, ``get_or_create()`` will instantiate and save a new object,
-returning a tuple of the new object and ``True``. The new object will be
-created according to this algorithm::
-
-    defaults = kwargs.pop('defaults', {})
-    params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
-    params.update(defaults)
-    obj = self.model(**params)
-    obj.save()
-
-In English, that means start with any non-``'defaults'`` keyword argument that
-doesn't contain a double underscore (which would indicate a non-exact lookup).
-Then add the contents of ``defaults``, overriding any keys if necessary, and
-use the result as the keyword arguments to the model class.
-
-If you have a field named ``defaults`` and want to use it as an exact lookup in
-``get_or_create()``, just use ``'defaults__exact'``, like so::
-
-    Foo.objects.get_or_create(defaults__exact='bar', defaults={'defaults': 'baz'})
-
-Finally, a word on using ``get_or_create()`` in Django views. As mentioned
-earlier, ``get_or_create()`` is mostly useful in scripts that need to parse
-data and create new records if existing ones aren't available. But if you need
-to use ``get_or_create()`` in a view, please make sure to use it only in
-``POST`` requests unless you have a good reason not to. ``GET`` requests
-shouldn't have any effect on data; use ``POST`` whenever a request to a page
-has a side effect on your data. For more, see `Safe methods`_ in the HTTP spec.
-
-.. _Safe methods: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1
-
-``count()``
-~~~~~~~~~~~
-
-Returns an integer representing the number of objects in the database matching
-the ``QuerySet``. ``count()`` never raises exceptions.
-
-Example::
-
-    # Returns the total number of entries in the database.
-    Entry.objects.count()
-
-    # Returns the number of entries whose headline contains 'Lennon'
-    Entry.objects.filter(headline__contains='Lennon').count()
-
-``count()`` performs a ``SELECT COUNT(*)`` behind the scenes, so you should
-always use ``count()`` rather than loading all of the record into Python
-objects and calling ``len()`` on the result.
-
-Depending on which database you're using (e.g. PostgreSQL vs. MySQL),
-``count()`` may return a long integer instead of a normal Python integer. This
-is an underlying implementation quirk that shouldn't pose any real-world
-problems.
-
-``in_bulk(id_list)``
-~~~~~~~~~~~~~~~~~~~~
-
-Takes a list of primary-key values and returns a dictionary mapping each
-primary-key value to an instance of the object with the given ID.
-
-Example::
-
-    >>> Blog.objects.in_bulk([1])
-    {1: Beatles Blog}
-    >>> Blog.objects.in_bulk([1, 2])
-    {1: Beatles Blog, 2: Cheddar Talk}
-    >>> Blog.objects.in_bulk([])
-    {}
-
-If you pass ``in_bulk()`` an empty list, you'll get an empty dictionary.
-
-``iterator()``
-~~~~~~~~~~~~~~
-
-Evaluates the ``QuerySet`` (by performing the query) and returns an
-`iterator`_ over the results. A ``QuerySet`` typically reads all of
-its results and instantiates all of the corresponding objects the
-first time you access it; ``iterator()`` will instead read results and
-instantiate objects in discrete chunks, yielding them one at a
-time. For a ``QuerySet`` which returns a large number of objects, this
-often results in better performance and a significant reduction in
-memory use.
-
-Note that using ``iterator()`` on a ``QuerySet`` which has already
-been evaluated will force it to evaluate again, repeating the query.
-
-.. _iterator: http://www.python.org/dev/peps/pep-0234/
-
-``latest(field_name=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Returns the latest object in the table, by date, using the ``field_name``
-provided as the date field.
-
-This example returns the latest ``Entry`` in the table, according to the
-``pub_date`` field::
-
-    Entry.objects.latest('pub_date')
-
-If your model's ``Meta`` specifies ``get_latest_by``, you can leave off the
-``field_name`` argument to ``latest()``. Django will use the field specified in
-``get_latest_by`` by default.
-
-Like ``get()``, ``latest()`` raises ``DoesNotExist`` if an object doesn't
-exist with the given parameters.
-
-Note ``latest()`` exists purely for convenience and readability.
-
-Field lookups
--------------
-
-Field lookups are how you specify the meat of an SQL ``WHERE`` clause. They're
-specified as keyword arguments to the ``QuerySet`` methods ``filter()``,
-``exclude()`` and ``get()``.
-
-Basic lookups keyword arguments take the form ``field__lookuptype=value``.
-(That's a double-underscore). For example::
-
-    Entry.objects.filter(pub_date__lte='2006-01-01')
-
-translates (roughly) into the following SQL::
-
-    SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01';
-
-.. admonition:: How this is possible
-
-   Python has the ability to define functions that accept arbitrary name-value
-   arguments whose names and values are evaluated at runtime. For more
-   information, see `Keyword Arguments`_ in the official Python tutorial.
-
-   .. _`Keyword Arguments`: http://docs.python.org/tut/node6.html#SECTION006720000000000000000
-
-If you pass an invalid keyword argument, a lookup function will raise
-``TypeError``.
-
-The database API supports the following lookup types:
-
-exact
-~~~~~
-
-Exact match. If the value provided for comparison is ``None``, it will
-be interpreted as an SQL ``NULL`` (See isnull_ for more details).
-
-Examples::
-
-    Entry.objects.get(id__exact=14)
-    Entry.objects.get(id__exact=None)
-
-SQL equivalents::
-
-    SELECT ... WHERE id = 14;
-    SELECT ... WHERE id IS NULL;
-
-**New in Django development version:** The semantics of ``id__exact=None`` have
-changed in the development version. Previously, it was (intentionally)
-converted to ``WHERE id = NULL`` at the SQL level, which would never match
-anything. It has now been changed to behave the same as ``id__isnull=True``.
-
-.. admonition:: MySQL comparisons
-
-    In MySQL, whether or not ``exact`` comparisons are case-sensitive depends
-    upon the collation setting of the table involved. The default is usually
-    ``latin1_swedish_ci`` or ``utf8_swedish_ci``, which results in
-    case-insensitive comparisons. Change the collation to
-    ``latin1_swedish_cs`` or ``utf8_bin`` for case sensitive comparisons.
-
-    For more details, refer to the MySQL manual section about `character sets
-    and collations`_.
-
-.. _character sets and collations: http://dev.mysql.com/doc/refman/5.0/en/charset.html
-
-iexact
-~~~~~~
-
-Case-insensitive exact match.
-
-Example::
-
-    Blog.objects.get(name__iexact='beatles blog')
-
-SQL equivalent::
-
-    SELECT ... WHERE name ILIKE 'beatles blog';
-
-Note this will match ``'Beatles Blog'``, ``'beatles blog'``,
-``'BeAtLes BLoG'``, etc.
-
-contains
-~~~~~~~~
-
-Case-sensitive containment test.
-
-Example::
-
-    Entry.objects.get(headline__contains='Lennon')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline LIKE '%Lennon%';
-
-Note this will match the headline ``'Today Lennon honored'`` but not
-``'today lennon honored'``.
-
-SQLite doesn't support case-sensitive ``LIKE`` statements; ``contains`` acts
-like ``icontains`` for SQLite.
-
-icontains
-~~~~~~~~~
-
-Case-insensitive containment test.
-
-Example::
-
-    Entry.objects.get(headline__icontains='Lennon')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline ILIKE '%Lennon%';
-
-gt
-~~
-
-Greater than.
-
-Example::
-
-    Entry.objects.filter(id__gt=4)
-
-SQL equivalent::
-
-    SELECT ... WHERE id > 4;
-
-gte
-~~~
-
-Greater than or equal to.
-
-lt
-~~
-
-Less than.
-
-lte
-~~~
-
-Less than or equal to.
-
-in
-~~
-
-In a given list.
-
-Example::
-
-    Entry.objects.filter(id__in=[1, 3, 4])
-
-SQL equivalent::
-
-    SELECT ... WHERE id IN (1, 3, 4);
-
-You can also use a queryset to dynamically evaluate the list of values
-instead of providing a list of literal values. The queryset must be
-reduced to a list of individual values using the ``values()`` method,
-and then converted into a query using the ``query`` attribute::
-
-    Entry.objects.filter(blog__in=Blog.objects.filter(name__contains='Cheddar').values('pk').query)
-
-This queryset will be evaluated as subselect statement::
-
-    SELECT ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%')
-
-startswith
-~~~~~~~~~~
-
-Case-sensitive starts-with.
-
-Example::
-
-    Entry.objects.filter(headline__startswith='Will')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline LIKE 'Will%';
-
-SQLite doesn't support case-sensitive ``LIKE`` statements; ``startswith`` acts
-like ``istartswith`` for SQLite.
-
-istartswith
-~~~~~~~~~~~
-
-Case-insensitive starts-with.
-
-Example::
-
-    Entry.objects.filter(headline__istartswith='will')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline ILIKE 'Will%';
-
-endswith
-~~~~~~~~
-
-Case-sensitive ends-with.
-
-Example::
-
-    Entry.objects.filter(headline__endswith='cats')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline LIKE '%cats';
-
-SQLite doesn't support case-sensitive ``LIKE`` statements; ``endswith`` acts
-like ``iendswith`` for SQLite.
-
-iendswith
-~~~~~~~~~
-
-Case-insensitive ends-with.
-
-Example::
-
-    Entry.objects.filter(headline__iendswith='will')
-
-SQL equivalent::
-
-    SELECT ... WHERE headline ILIKE '%will'
-
-range
-~~~~~
-
-Range test (inclusive).
-
-Example::
-
-    start_date = datetime.date(2005, 1, 1)
-    end_date = datetime.date(2005, 3, 31)
-    Entry.objects.filter(pub_date__range=(start_date, end_date))
-
-SQL equivalent::
-
-    SELECT ... WHERE pub_date BETWEEN '2005-01-01' and '2005-03-31';
-
-You can use ``range`` anywhere you can use ``BETWEEN`` in SQL -- for dates,
-numbers and even characters.
-
-year
-~~~~
-
-For date/datetime fields, exact year match. Takes a four-digit year.
-
-Example::
-
-    Entry.objects.filter(pub_date__year=2005)
-
-SQL equivalent::
-
-    SELECT ... WHERE EXTRACT('year' FROM pub_date) = '2005';
-
-(The exact SQL syntax varies for each database engine.)
-
-month
-~~~~~
-
-For date/datetime fields, exact month match. Takes an integer 1 (January)
-through 12 (December).
-
-Example::
-
-    Entry.objects.filter(pub_date__month=12)
-
-SQL equivalent::
-
-    SELECT ... WHERE EXTRACT('month' FROM pub_date) = '12';
-
-(The exact SQL syntax varies for each database engine.)
-
-day
-~~~
-
-For date/datetime fields, exact day match.
-
-Example::
-
-    Entry.objects.filter(pub_date__day=3)
-
-SQL equivalent::
-
-    SELECT ... WHERE EXTRACT('day' FROM pub_date) = '3';
-
-(The exact SQL syntax varies for each database engine.)
-
-Note this will match any record with a pub_date on the third day of the month,
-such as January 3, July 3, etc.
-
-isnull
-~~~~~~
-
-Takes either ``True`` or ``False``, which correspond to SQL queries of
-``IS NULL`` and ``IS NOT NULL``, respectively.
-
-Example::
-
-    Entry.objects.filter(pub_date__isnull=True)
-
-SQL equivalent::
-
-    SELECT ... WHERE pub_date IS NULL;
-
-search
-~~~~~~
-
-A boolean full-text search, taking advantage of full-text indexing. This is
-like ``contains`` but is significantly faster due to full-text indexing.
-
-Note this is only available in MySQL and requires direct manipulation of the
-database to add the full-text index.
-
-regex
-~~~~~
-
-**New in Django development version**
-
-Case-sensitive regular expression match.
-
-The regular expression syntax is that of the database backend in use. In the
-case of SQLite, which doesn't natively support regular-expression lookups, the
-syntax is that of Python's ``re`` module.
-
-Example::
-
-    Entry.objects.get(title__regex=r'^(An?|The) +')
-
-SQL equivalents::
-
-    SELECT ... WHERE title REGEXP BINARY '^(An?|The) +'; -- MySQL
-
-    SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'c'); -- Oracle
-
-    SELECT ... WHERE title ~ '^(An?|The) +'; -- PostgreSQL
-
-    SELECT ... WHERE title REGEXP '^(An?|The) +'; -- SQLite
-
-Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the
-regular expression syntax is recommended.
-
-iregex
-~~~~~~
-
-**New in Django development version**
-
-Case-insensitive regular expression match.
-
-Example::
-
-    Entry.objects.get(title__iregex=r'^(an?|the) +')
-
-SQL equivalents::
-
-    SELECT ... WHERE title REGEXP '^(an?|the) +'; -- MySQL
-
-    SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'i'); -- Oracle
-
-    SELECT ... WHERE title ~* '^(an?|the) +'; -- PostgreSQL
-
-    SELECT ... WHERE title REGEXP '(?i)^(an?|the) +'; -- SQLite
-
-Default lookups are exact
--------------------------
-
-If you don't provide a lookup type -- that is, if your keyword argument doesn't
-contain a double underscore -- the lookup type is assumed to be ``exact``.
-
-For example, the following two statements are equivalent::
-
-    Blog.objects.get(id__exact=14) # Explicit form
-    Blog.objects.get(id=14) # __exact is implied
-
-This is for convenience, because ``exact`` lookups are the common case.
-
-The pk lookup shortcut
-----------------------
-
-For convenience, Django provides a ``pk`` lookup type, which stands for
-"primary_key".
-
-In the example ``Blog`` model, the primary key is the ``id`` field, so these
-three statements are equivalent::
-
-    Blog.objects.get(id__exact=14) # Explicit form
-    Blog.objects.get(id=14) # __exact is implied
-    Blog.objects.get(pk=14) # pk implies id__exact
-
-The use of ``pk`` isn't limited to ``__exact`` queries -- any query term
-can be combined with ``pk`` to perform a query on the primary key of a model::
-
-    # Get blogs entries  with id 1, 4 and 7
-    Blog.objects.filter(pk__in=[1,4,7])
-    # Get all blog entries with id > 14
-    Blog.objects.filter(pk__gt=14)
-
-``pk`` lookups also work across joins. For example, these three statements are
-equivalent::
-
-    Entry.objects.filter(blog__id__exact=3) # Explicit form
-    Entry.objects.filter(blog__id=3) # __exact is implied
-    Entry.objects.filter(blog__pk=3) # __pk implies __id__exact
-
-.. note::
-    Because of this shortcut, you cannot have a field called ``pk`` that is not
-    the primary key of the model. It will always be replaced by the name of the
-    model's primary key in queries.
-
-Lookups that span relationships
--------------------------------
-
-Django offers a powerful and intuitive way to "follow" relationships in
-lookups, taking care of the SQL ``JOIN``\s for you automatically, behind the
-scenes. To span a relationship, just use the field name of related fields
-across models, separated by double underscores, until you get to the field you
-want.
-
-This example retrieves all ``Entry`` objects with a ``Blog`` whose ``name``
-is ``'Beatles Blog'``::
-
-    Entry.objects.filter(blog__name__exact='Beatles Blog')
-
-This spanning can be as deep as you'd like.
-
-It works backwards, too. To refer to a "reverse" relationship, just use the
-lowercase name of the model.
-
-This example retrieves all ``Blog`` objects which have at least one ``Entry``
-whose ``headline`` contains ``'Lennon'``::
-
-    Blog.objects.filter(entry__headline__contains='Lennon')
-
-If you are filtering across multiple relationships and one of the intermediate
-models doesn't have a value that meets the filter condition, Django will treat
-it as if there is an empty (all values are ``NULL``), but valid, object there.
-All this means is that no error will be raised. For example, in this filter::
-
-    Blog.objects.filter(entry__author__name='Lennon')
-
-(if there was a related ``Author`` model), if there was no ``author``
-associated with an entry, it would be treated as if there was also no ``name``
-attached, rather than raising an error because of the missing ``author``.
-Usually this is exactly what you want to have happen. The only case where it
-might be confusing is if you are using ``isnull``. Thus::
-
-    Blog.objects.filter(entry__author__name__isnull=True)
-
-will return ``Blog`` objects that have an empty ``name`` on the ``author`` and
-also those which have an empty ``author`` on the ``entry``. If you don't want
-those latter objects, you could write::
-
-    Blog.objetcs.filter(entry__author__isnull=False,
-            entry__author__name__isnull=True)
-
-Spanning multi-valued relationships
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-When you are filtering an object based on a ``ManyToManyField`` or a reverse
-``ForeignKeyField``, there are two different sorts of filter you may be
-interested in. Consider the ``Blog``/``Entry`` relationship (``Blog`` to
-``Entry`` is a one-to-many relation). We might be interested in finding blogs
-that have an entry which has both *"Lennon"* in the headline and was published
-in 2008. Or we might want to find blogs that have an entry with *"Lennon"* in
-the headline as well as an entry that was published in 2008. Since there are
-multiple entries associated with a single ``Blog``, both of these queries are
-possible and make sense in some situations.
-
-The same type of situation arises with a ``ManyToManyField``. For example, if
-an ``Entry`` has a ``ManyToManyField`` called ``tags``, we might want to find
-entries linked to tags called *"music"* and *"bands"* or we might want an
-entry that contains a tag with a name of *"music"* and a status of *"public"*.
-
-To handle both of these situations, Django has a consistent way of processing
-``filter()`` and ``exclude()`` calls. Everything inside a single ``filter()``
-call is applied simultaneously to filter out items matching all those
-requirements. Successive ``filter()`` calls further restrict the set of
-objects, but for multi-valued relations, they apply to any object linked to
-the primary model, not necessarily those objects that were selected by an
-earlier ``filter()`` call.
-
-That may sound a bit confusing, so hopefully an example will clarify. To
-select all blogs that contains entries with *"Lennon"* in the headline and
-were published in 2008, we would write::
-
-    Blog.objects.filter(entry__headline__contains='Lennon',
-            entry__pub_date__year=2008)
-
-To select all blogs that contain an entry with *"Lennon"* in the headline
-**as well as** an entry that was published in 2008, we would write::
-
-    Blog.objects.filter(entry__headline__contains='Lennon').filter(
-            entry__pub_date__year=2008)
-
-In this second example, the first filter restricted the queryset to all those
-blogs linked to that particular type of entry. The second filter restricted
-the set of blogs *further* to those that are also linked to the second type of
-entry. The entries select by the second filter may or may not be the same as
-the entries in the first filter. We are filtering the ``Blog`` items with each
-filter statement, not the ``Entry`` items.
-
-All of this behavior also applies to ``exclude()``: all the conditions in a
-single ``exclude()`` statement apply to a single instance (if those conditions
-are talking about the same multi-valued relation). Conditions in subsequent
-``filter()`` or ``exclude()`` calls that refer to the same relation may end up
-filtering on different linked objects.
-
-Escaping percent signs and underscores in LIKE statements
----------------------------------------------------------
-
-The field lookups that equate to ``LIKE`` SQL statements (``iexact``,
-``contains``, ``icontains``, ``startswith``, ``istartswith``, ``endswith``
-and ``iendswith``) will automatically escape the two special characters used in
-``LIKE`` statements -- the percent sign and the underscore. (In a ``LIKE``
-statement, the percent sign signifies a multiple-character wildcard and the
-underscore signifies a single-character wildcard.)
-
-This means things should work intuitively, so the abstraction doesn't leak.
-For example, to retrieve all the entries that contain a percent sign, just use
-the percent sign as any other character::
-
-    Entry.objects.filter(headline__contains='%')
-
-Django takes care of the quoting for you; the resulting SQL will look something
-like this::
-
-    SELECT ... WHERE headline LIKE '%\%%';
-
-Same goes for underscores. Both percentage signs and underscores are handled
-for you transparently.
-
-Caching and QuerySets
----------------------
-
-Each ``QuerySet`` contains a cache, to minimize database access. It's important
-to understand how it works, in order to write the most efficient code.
-
-In a newly created ``QuerySet``, the cache is empty. The first time a
-``QuerySet`` is evaluated -- and, hence, a database query happens -- Django
-saves the query results in the ``QuerySet``'s cache and returns the results
-that have been explicitly requested (e.g., the next element, if the
-``QuerySet`` is being iterated over). Subsequent evaluations of the
-``QuerySet`` reuse the cached results.
-
-Keep this caching behavior in mind, because it may bite you if you don't use
-your ``QuerySet``\s correctly. For example, the following will create two
-``QuerySet``\s, evaluate them, and throw them away::
-
-    print [e.headline for e in Entry.objects.all()]
-    print [e.pub_date for e in Entry.objects.all()]
-
-That means the same database query will be executed twice, effectively doubling
-your database load. Also, there's a possibility the two lists may not include
-the same database records, because an ``Entry`` may have been added or deleted
-in the split second between the two requests.
-
-To avoid this problem, simply save the ``QuerySet`` and reuse it::
-
-    queryset = Poll.objects.all()
-    print [p.headline for p in queryset] # Evaluate the query set.
-    print [p.pub_date for p in queryset] # Re-use the cache from the evaluation.
-
-Comparing objects
-=================
-
-To compare two model instances, just use the standard Python comparison operator,
-the double equals sign: ``==``. Behind the scenes, that compares the primary
-key values of two models.
-
-Using the ``Entry`` example above, the following two statements are equivalent::
-
-    some_entry == other_entry
-    some_entry.id == other_entry.id
-
-If a model's primary key isn't called ``id``, no problem. Comparisons will
-always use the primary key, whatever it's called. For example, if a model's
-primary key field is called ``name``, these two statements are equivalent::
-
-    some_obj == other_obj
-    some_obj.name == other_obj.name
-
-Complex lookups with Q objects
-==============================
-
-Keyword argument queries -- in ``filter()``, etc. -- are "AND"ed together. If
-you need to execute more complex queries (for example, queries with ``OR``
-statements), you can use ``Q`` objects.
-
-A ``Q`` object (``django.db.models.Q``) is an object used to encapsulate a
-collection of keyword arguments. These keyword arguments are specified as in
-"Field lookups" above.
-
-For example, this ``Q`` object encapsulates a single ``LIKE`` query::
-
-    Q(question__startswith='What')
-
-``Q`` objects can be combined using the ``&`` and ``|`` operators. When an
-operator is used on two ``Q`` objects, it yields a new ``Q`` object.
-
-For example, this statement yields a single ``Q`` object that represents the
-"OR" of two ``"question__startswith"`` queries::
-
-    Q(question__startswith='Who') | Q(question__startswith='What')
-
-This is equivalent to the following SQL ``WHERE`` clause::
-
-    WHERE question LIKE 'Who%' OR question LIKE 'What%'
-
-You can compose statements of arbitrary complexity by combining ``Q`` objects
-with the ``&`` and ``|`` operators. You can also use parenthetical grouping.
-
-**New in Django development version:** ``Q`` objects can also be negated using
-the ``~`` operator, allowing for combined lookups that combine both a normal
-query and a negated (``NOT``) query::
-
-    Q(question__startswith='Who') | ~Q(pub_date__year=2005)
-
-Each lookup function that takes keyword-arguments (e.g. ``filter()``,
-``exclude()``, ``get()``) can also be passed one or more ``Q`` objects as
-positional (not-named) arguments. If you provide multiple ``Q`` object
-arguments to a lookup function, the arguments will be "AND"ed together. For
-example::
-
-    Poll.objects.get(
-        Q(question__startswith='Who'),
-        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
-    )
-
-... roughly translates into the SQL::
-
-    SELECT * from polls WHERE question LIKE 'Who%'
-        AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06')
-
-Lookup functions can mix the use of ``Q`` objects and keyword arguments. All
-arguments provided to a lookup function (be they keyword arguments or ``Q``
-objects) are "AND"ed together. However, if a ``Q`` object is provided, it must
-precede the definition of any keyword arguments. For example::
-
-    Poll.objects.get(
-        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)),
-        question__startswith='Who')
-
-... would be a valid query, equivalent to the previous example; but::
-
-    # INVALID QUERY
-    Poll.objects.get(
-        question__startswith='Who',
-        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))
-
-... would not be valid.
-
-See the `OR lookups examples page`_ for more examples.
-
-.. _OR lookups examples page: ../models/or_lookups/
-
-Related objects
-===============
-
-When you define a relationship in a model (i.e., a ``ForeignKey``,
-``OneToOneField``, or ``ManyToManyField``), instances of that model will have
-a convenient API to access the related object(s).
-
-Using the models at the top of this page, for example, an ``Entry`` object ``e``
-can get its associated ``Blog`` object by accessing the ``blog`` attribute:
-``e.blog``.
-
-(Behind the scenes, this functionality is implemented by Python descriptors_.
-This shouldn't really matter to you, but we point it out here for the curious.)
-
-Django also creates API accessors for the "other" side of the relationship --
-the link from the related model to the model that defines the relationship.
-For example, a ``Blog`` object ``b`` has access to a list of all related
-``Entry`` objects via the ``entry_set`` attribute: ``b.entry_set.all()``.
-
-All examples in this section use the sample ``Blog``, ``Author`` and ``Entry``
-models defined at the top of this page.
-
-.. _descriptors: http://users.rcn.com/python/download/Descriptor.htm
-
-One-to-many relationships
--------------------------
-
-Forward
-~~~~~~~
-
-If a model has a ``ForeignKey``, instances of that model will have access to
-the related (foreign) object via a simple attribute of the model.
-
-Example::
-
-    e = Entry.objects.get(id=2)
-    e.blog # Returns the related Blog object.
-
-You can get and set via a foreign-key attribute. As you may expect, changes to
-the foreign key aren't saved to the database until you call ``save()``.
-Example::
-
-    e = Entry.objects.get(id=2)
-    e.blog = some_blog
-    e.save()
-
-If a ``ForeignKey`` field has ``null=True`` set (i.e., it allows ``NULL``
-values), you can assign ``None`` to it. Example::
-
-    e = Entry.objects.get(id=2)
-    e.blog = None
-    e.save() # "UPDATE blog_entry SET blog_id = NULL ...;"
-
-Forward access to one-to-many relationships is cached the first time the
-related object is accessed. Subsequent accesses to the foreign key on the same
-object instance are cached. Example::
-
-    e = Entry.objects.get(id=2)
-    print e.blog  # Hits the database to retrieve the associated Blog.
-    print e.blog  # Doesn't hit the database; uses cached version.
-
-Note that the ``select_related()`` ``QuerySet`` method recursively prepopulates
-the cache of all one-to-many relationships ahead of time. Example::
-
-    e = Entry.objects.select_related().get(id=2)
-    print e.blog  # Doesn't hit the database; uses cached version.
-    print e.blog  # Doesn't hit the database; uses cached version.
-
-``select_related()`` is documented in the `QuerySet methods that return new QuerySets`_ section above.
-
-Backward
-~~~~~~~~
-
-If a model has a ``ForeignKey``, instances of the foreign-key model will have
-access to a ``Manager`` that returns all instances of the first model. By
-default, this ``Manager`` is named ``FOO_set``, where ``FOO`` is the source
-model name, lowercased. This ``Manager`` returns ``QuerySets``, which can be
-filtered and manipulated as described in the "Retrieving objects" section
-above.
-
-Example::
-
-    b = Blog.objects.get(id=1)
-    b.entry_set.all() # Returns all Entry objects related to Blog.
-
-    # b.entry_set is a Manager that returns QuerySets.
-    b.entry_set.filter(headline__contains='Lennon')
-    b.entry_set.count()
-
-You can override the ``FOO_set`` name by setting the ``related_name``
-parameter in the ``ForeignKey()`` definition. For example, if the ``Entry``
-model was altered to ``blog = ForeignKey(Blog, related_name='entries')``, the
-above example code would look like this::
-
-    b = Blog.objects.get(id=1)
-    b.entries.all() # Returns all Entry objects related to Blog.
-
-    # b.entries is a Manager that returns QuerySets.
-    b.entries.filter(headline__contains='Lennon')
-    b.entries.count()
-
-You cannot access a reverse ``ForeignKey`` ``Manager`` from the class; it must
-be accessed from an instance. Example::
-
-    Blog.entry_set # Raises AttributeError: "Manager must be accessed via instance".
-
-In addition to the ``QuerySet`` methods defined in "Retrieving objects" above,
-the ``ForeignKey`` ``Manager`` has these additional methods:
-
-    * ``add(obj1, obj2, ...)``: Adds the specified model objects to the related
-      object set.
-
-      Example::
-
-          b = Blog.objects.get(id=1)
-          e = Entry.objects.get(id=234)
-          b.entry_set.add(e) # Associates Entry e with Blog b.
-
-    * ``create(**kwargs)``: Creates a new object, saves it and puts it in the
-      related object set. Returns the newly created object.
-
-      Example::
-
-          b = Blog.objects.get(id=1)
-          e = b.entry_set.create(headline='Hello', body_text='Hi', pub_date=datetime.date(2005, 1, 1))
-          # No need to call e.save() at this point -- it's already been saved.
-
-      This is equivalent to (but much simpler than)::
-
-          b = Blog.objects.get(id=1)
-          e = Entry(blog=b, headline='Hello', body_text='Hi', pub_date=datetime.date(2005, 1, 1))
-          e.save()
-
-      Note that there's no need to specify the keyword argument of the model
-      that defines the relationship. In the above example, we don't pass the
-      parameter ``blog`` to ``create()``. Django figures out that the new
-      ``Entry`` object's ``blog`` field should be set to ``b``.
-
-    * ``remove(obj1, obj2, ...)``: Removes the specified model objects from the
-      related object set.
-
-      Example::
-
-          b = Blog.objects.get(id=1)
-          e = Entry.objects.get(id=234)
-          b.entry_set.remove(e) # Disassociates Entry e from Blog b.
-
-      In order to prevent database inconsistency, this method only exists on
-      ``ForeignKey`` objects where ``null=True``. If the related field can't be
-      set to ``None`` (``NULL``), then an object can't be removed from a
-      relation without being added to another. In the above example, removing
-      ``e`` from ``b.entry_set()`` is equivalent to doing ``e.blog = None``,
-      and because the ``blog`` ``ForeignKey`` doesn't have ``null=True``, this
-      is invalid.
-
-    * ``clear()``: Removes all objects from the related object set.
-
-      Example::
-
-          b = Blog.objects.get(id=1)
-          b.entry_set.clear()
-
-      Note this doesn't delete the related objects -- it just disassociates
-      them.
-
-      Just like ``remove()``, ``clear()`` is only available on ``ForeignKey``s
-      where ``null=True``.
-
-To assign the members of a related set in one fell swoop, just assign to it
-from any iterable object. Example::
-
-    b = Blog.objects.get(id=1)
-    b.entry_set = [e1, e2]
-
-If the ``clear()`` method is available, any pre-existing objects will be
-removed from the ``entry_set`` before all objects in the iterable (in this
-case, a list) are added to the set. If the ``clear()`` method is *not*
-available, all objects in the iterable will be added without removing any
-existing elements.
-
-Each "reverse" operation described in this section has an immediate effect on
-the database. Every addition, creation and deletion is immediately and
-automatically saved to the database.
-
-One-to-one relationships
-------------------------
-
-One-to-one relationships are very similar to many-to-one relationships.
-If you define a OneToOneField on your model, instances of that model will have
-access to the related object via a simple attribute of the model.
-
-For example::
-
-    class EntryDetail(models.Model):
-        entry = models.OneToOneField(Entry)
-        details = models.TextField()
-
-    ed = EntryDetail.objects.get(id=2)
-    ed.entry # Returns the related Entry object.
-
-The difference comes in "reverse" queries. The related model in a one-to-one
-relationship also has access to a ``Manager`` object, but that ``Manager``
-represents a single object, rather than a collection of objects::
-
-    e = Entry.objects.get(id=2)
-    e.entrydetail # returns the related EntryDetail object
-
-If no object has been assigned to this relationship, Django will raise
-a ``DoesNotExist`` exception.
-
-Instances can be assigned to the reverse relationship in the same way as
-you would assign the forward relationship::
-
-    e.entrydetail = ed
-
-Many-to-many relationships
---------------------------
-
-Both ends of a many-to-many relationship get automatic API access to the other
-end. The API works just as a "backward" one-to-many relationship. See Backward_
-above.
-
-The only difference is in the attribute naming: The model that defines the
-``ManyToManyField`` uses the attribute name of that field itself, whereas the
-"reverse" model uses the lowercased model name of the original model, plus
-``'_set'`` (just like reverse one-to-many relationships).
-
-An example makes this easier to understand::
-
-    e = Entry.objects.get(id=3)
-    e.authors.all() # Returns all Author objects for this Entry.
-    e.authors.count()
-    e.authors.filter(name__contains='John')
-
-    a = Author.objects.get(id=5)
-    a.entry_set.all() # Returns all Entry objects for this Author.
-
-Like ``ForeignKey``, ``ManyToManyField`` can specify ``related_name``. In the
-above example, if the ``ManyToManyField`` in ``Entry`` had specified
-``related_name='entries'``, then each ``Author`` instance would have an
-``entries`` attribute instead of ``entry_set``.
-
-How are the backward relationships possible?
---------------------------------------------
-
-Other object-relational mappers require you to define relationships on both
-sides. The Django developers believe this is a violation of the DRY (Don't
-Repeat Yourself) principle, so Django only requires you to define the
-relationship on one end.
-
-But how is this possible, given that a model class doesn't know which other
-model classes are related to it until those other model classes are loaded?
-
-The answer lies in the ``INSTALLED_APPS`` setting. The first time any model is
-loaded, Django iterates over every model in ``INSTALLED_APPS`` and creates the
-backward relationships in memory as needed. Essentially, one of the functions
-of ``INSTALLED_APPS`` is to tell Django the entire model domain.
-
-Queries over related objects
-----------------------------
-
-Queries involving related objects follow the same rules as queries involving
-normal value fields. When specifying the the value for a query to match, you
-may use either an object instance itself, or the primary key value for the
-object.
-
-For example, if you have a Blog object ``b`` with ``id=5``, the following
-three queries would be identical::
-
-    Entry.objects.filter(blog=b) # Query using object instance
-    Entry.objects.filter(blog=b.id) # Query using id from instance
-    Entry.objects.filter(blog=5) # Query using id directly
-
-Deleting objects
-================
-
-The delete method, conveniently, is named ``delete()``. This method immediately
-deletes the object and has no return value. Example::
-
-    e.delete()
-
-You can also delete objects in bulk. Every ``QuerySet`` has a ``delete()``
-method, which deletes all members of that ``QuerySet``.
-
-For example, this deletes all ``Entry`` objects with a ``pub_date`` year of
-2005::
-
-    Entry.objects.filter(pub_date__year=2005).delete()
-
-Keep in mind that this will, whenever possible, be executed purely in
-SQL, and so the ``delete()`` methods of individual object instances
-will not necessarily be called during the process. If you've provided
-a custom ``delete()`` method on a model class and want to ensure that
-it is called, you will need to "manually" delete instances of that
-model (e.g., by iterating over a ``QuerySet`` and calling ``delete()``
-on each object individually) rather than using the bulk ``delete()``
-method of a ``QuerySet``.
-
-When Django deletes an object, it emulates the behavior of the SQL
-constraint ``ON DELETE CASCADE`` -- in other words, any objects which
-had foreign keys pointing at the object to be deleted will be deleted
-along with it. For example::
-
-    b = Blog.objects.get(pk=1)
-    # This will delete the Blog and all of its Entry objects.
-    b.delete()
-
-Note that ``delete()`` is the only ``QuerySet`` method that is not exposed on a
-``Manager`` itself. This is a safety mechanism to prevent you from accidentally
-requesting ``Entry.objects.delete()``, and deleting *all* the entries. If you
-*do* want to delete all the objects, then you have to explicitly request a
-complete query set::
-
-    Entry.objects.all().delete()
-
-Updating multiple objects at once
-=================================
-
-**New in Django development version**
-
-Sometimes you want to set a field to a particular value for all the objects in
-a ``QuerySet``. You can do this with the ``update()`` method. For example::
-
-    # Update all the headlines with pub_date in 2007.
-    Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')
-
-You can only set non-relation fields and ``ForeignKey`` fields using this
-method, and the value you set the field to must be a hard-coded Python value
-(i.e., you can't set a field to be equal to some other field at the moment).
-
-To update ``ForeignKey`` fields, set the new value to be the new model
-instance you want to point to. Example::
-
-    b = Blog.objects.get(pk=1)
-    # Change every Entry so that it belongs to this Blog.
-    Entry.objects.all().update(blog=b)
-
-The ``update()`` method is applied instantly and doesn't return anything
-(similar to ``delete()``). The only restriction on the ``QuerySet`` that is
-updated is that it can only access one database table, the model's main
-table. So don't try to filter based on related fields or anything like that;
-it won't work.
-
-Be aware that the ``update()`` method is converted directly to an SQL
-statement. It is a bulk operation for direct updates. It doesn't run any
-``save()`` methods on your models, or emit the ``pre_save`` or ``post_save``
-signals (which are a consequence of calling ``save()``). If you want to save
-every item in a ``QuerySet`` and make sure that the ``save()`` method is
-called on each instance, you don't need any special function to handle that.
-Just loop over them and call ``save()``::
-
-    for item in my_queryset:
-        item.save()
-
-
-Extra instance methods
-======================
-
-In addition to ``save()``, ``delete()``, a model object might get any or all
-of the following methods:
-
-get_FOO_display()
------------------
-
-For every field that has ``choices`` set, the object will have a
-``get_FOO_display()`` method, where ``FOO`` is the name of the field. This
-method returns the "human-readable" value of the field. For example, in the
-following model::
-
-    GENDER_CHOICES = (
-        ('M', 'Male'),
-        ('F', 'Female'),
-    )
-    class Person(models.Model):
-        name = models.CharField(max_length=20)
-        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
-
-...each ``Person`` instance will have a ``get_gender_display()`` method. Example::
-
-    >>> p = Person(name='John', gender='M')
-    >>> p.save()
-    >>> p.gender
-    'M'
-    >>> p.get_gender_display()
-    'Male'
-
-get_next_by_FOO(\**kwargs) and get_previous_by_FOO(\**kwargs)
--------------------------------------------------------------
-
-For every ``DateField`` and ``DateTimeField`` that does not have ``null=True``,
-the object will have ``get_next_by_FOO()`` and ``get_previous_by_FOO()``
-methods, where ``FOO`` is the name of the field. This returns the next and
-previous object with respect to the date field, raising the appropriate
-``DoesNotExist`` exception when appropriate.
-
-Both methods accept optional keyword arguments, which should be in the format
-described in `Field lookups`_ above.
-
-Note that in the case of identical date values, these methods will use the ID
-as a fallback check. This guarantees that no records are skipped or duplicated.
-For a full example, see the `lookup API sample model`_.
-
-.. _lookup API sample model: ../models/lookup/
-
-
-Shortcuts
-=========
-
-As you develop views, you will discover a number of common idioms in the
-way you use the database API. Django encodes some of these idioms as
-shortcuts that can be used to simplify the process of writing views. These
-functions are in the ``django.shortcuts`` module.
-
-get_object_or_404()
--------------------
-
-One common idiom to use ``get()`` and raise ``Http404`` if the
-object doesn't exist. This idiom is captured by ``get_object_or_404()``.
-This function takes a Django model as its first argument and an
-arbitrary number of keyword arguments, which it passes to the default
-manager's ``get()`` function. It raises ``Http404`` if the object doesn't
-exist. For example::
-
-    # Get the Entry with a primary key of 3
-    e = get_object_or_404(Entry, pk=3)
-
-When you provide a model to this shortcut function, the default manager
-is used to execute the underlying ``get()`` query. If you don't want to
-use the default manager, or if you want to search a list of related objects,
-you can provide ``get_object_or_404()`` with a ``Manager`` object instead.
-For example::
-
-    # Get the author of blog instance e with a name of 'Fred'
-    a = get_object_or_404(e.authors, name='Fred')
-
-    # Use a custom manager 'recent_entries' in the search for an
-    # entry with a primary key of 3
-    e = get_object_or_404(Entry.recent_entries, pk=3)
-
-**New in Django development version:** The first argument to
-``get_object_or_404()`` can be a ``QuerySet`` object. This is useful in cases
-where you've defined a custom manager method. For example::
-
-    # Use a QuerySet returned from a 'published' method of a custom manager
-    # in the search for an entry with primary key of 5
-    e = get_object_or_404(Entry.objects.published(), pk=5)
-
-get_list_or_404()
------------------
-
-``get_list_or_404`` behaves the same way as ``get_object_or_404()``
--- except that it uses ``filter()`` instead of ``get()``. It raises
-``Http404`` if the list is empty.
-
-Falling back to raw SQL
-=======================
-
-If you find yourself needing to write an SQL query that is too complex for
-Django's database-mapper to handle, you can fall back into raw-SQL statement
-mode.
-
-The preferred way to do this is by giving your model custom methods or custom
-manager methods that execute queries. Although there's nothing in Django that
-*requires* database queries to live in the model layer, this approach keeps all
-your data-access logic in one place, which is smart from an code-organization
-standpoint. For instructions, see `Executing custom SQL`_.
-
-Finally, it's important to note that the Django database layer is merely an
-interface to your database. You can access your database via other tools,
-programming languages or database frameworks; there's nothing Django-specific
-about your database.
-
-.. _Executing custom SQL: ../model-api/#executing-custom-sql
diff --git a/docs/documentation.txt b/docs/documentation.txt
deleted file mode 100644
index decb066fa1..0000000000
--- a/docs/documentation.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-====================================
-How to read the Django documentation
-====================================
-
-We've put a lot of effort into making Django's documentation useful, easy to
-read and as complete as possible. Here are a few tips on how to make the best
-of it, along with some style guidelines.
-
-(Yes, this is documentation about documentation. Rest assured we have no plans
-to write a document about how to read the document about documentation.)
-
-How documentation is updated
-============================
-
-Just as the Django code base is developed and improved on a daily basis, our
-documentation is consistently improving. We improve documentation for several
-reasons:
-
-    * To make content fixes, such as grammar/typo corrections.
-    * To add information and/or examples to existing sections that need to be
-      expanded.
-    * To document Django features that aren't yet documented. (The list of
-      such features is shrinking but exists nonetheless.)
-    * To add documentation for new features as new features get added, or as
-      Django APIs or behaviors change.
-
-Django's documentation is kept in the same source control system as its code.
-It lives in the `django/trunk/docs`_ directory of our Subversion repository.
-Each document is a separate text file that covers a narrowly focused topic,
-such as the "generic views" framework or how to construct a database model.
-
-.. _django/trunk/docs: http://code.djangoproject.com/browser/django/trunk/docs
-
-Where to get it
-===============
-
-You can read Django documentation in several ways. They are, in order of
-preference:
-
-On the Web
-----------
-
-The most recent version of the Django documentation lives at
-http://www.djangoproject.com/documentation/ . These HTML pages are generated
-automatically from the text files in source control. That means they reflect
-the "latest and greatest" in Django -- they include the very latest
-corrections and additions, and they discuss the latest Django features,
-which may only be available to users of the Django development version. (See
-"Differences between versions" below.)
-
-We encourage you to help improve the docs by submitting changes, corrections
-and suggestions in the `ticket system`_. The Django developers actively monitor
-the ticket system and use your feedback to improve the documentation for
-everybody.
-
-Note, however, that tickets should explicitly relate to the documentation,
-rather than asking broad tech-support questions. If you need help with your
-particular Django setup, try the `django-users mailing list`_ or the
-`#django IRC channel`_ instead.
-
-.. _ticket system: http://code.djangoproject.com/simpleticket?component=Documentation
-.. _django-users mailing list: http://groups.google.com/group/django-users
-.. _#django IRC channel: irc://irc.freenode.net/django
-
-In plain text
--------------
-
-For offline reading, or just for convenience, you can read the Django
-documentation in plain text.
-
-If you're using an official release of Django, note that the zipped package
-(tarball) of the code includes a ``docs/`` directory, which contains all the
-documentation for that release.
-
-If you're using the development version of Django (aka the Subversion "trunk"),
-note that the ``docs/`` directory contains all of the documentation. You can
-``svn update`` it, just as you ``svn update`` the Python code, in order to get
-the latest changes.
-
-You can check out the latest Django documentation from Subversion using this
-shell command::
-
-    svn co http://code.djangoproject.com/svn/django/trunk/docs/ django_docs
-
-One low-tech way of taking advantage of the text documentation is by using the
-Unix ``grep`` utility to search for a phrase in all of the documentation. For
-example, this will show you each mention of the phrase "edit_inline" in any
-Django document::
-
-    grep edit_inline /path/to/django/docs/*.txt
-
-Formatting
-~~~~~~~~~~
-
-The text documentation is written in ReST (ReStructured Text) format. That
-means it's easy to read but is also formatted in a way that makes it easy to
-convert into other formats, such as HTML. If you have the `reStructuredText`_
-library installed, you can use ``rst2html`` to generate your own HTML files.
-
-.. _reStructuredText: http://docutils.sourceforge.net/rst.html
-
-Differences between versions
-============================
-
-As previously mentioned, the text documentation in our Subversion repository
-contains the "latest and greatest" changes and additions. These changes often
-include documentation of new features added in the Django development version
--- the Subversion ("trunk") version of Django. For that reason, it's worth
-pointing out our policy on keeping straight the documentation for various
-versions of the framework.
-
-We follow this policy:
-
-    * The primary documentation on djangoproject.com is an HTML version of the
-      latest docs in Subversion. These docs always correspond to the latest
-      official Django release, plus whatever features we've added/changed in
-      the framework *since* the latest release.
-
-    * As we add features to Django's development version, we try to update the
-      documentation in the same Subversion commit transaction.
-
-    * To distinguish feature changes/additions in the docs, we use the phrase
-      **New in Django development version**. In practice, this means that the
-      current documentation on djangoproject.com can be used by users of either
-      the latest release *or* the development version.
-
-    * Documentation for a particular Django release is frozen once the version
-      has been released officially. It remains a snapshot of the docs as of the
-      moment of the release. We will make exceptions to this rule in
-      the case of retroactive security updates or other such retroactive
-      changes. Once documentation is frozen, we add a note to the top of each
-      frozen document that says "These docs are frozen for Django version XXX"
-      and links to the current version of that document.
-
-    * The `main documentation Web page`_ includes links to documentation for
-      all previous versions.
-
-.. _main documentation Web page: http://www.djangoproject.com/documentation/
diff --git a/docs/faq.txt b/docs/faq.txt
deleted file mode 100644
index 2c1ffa72db..0000000000
--- a/docs/faq.txt
+++ /dev/null
@@ -1,744 +0,0 @@
-==========
-Django FAQ
-==========
-
-General questions
-=================
-
-Why does this project exist?
-----------------------------
-
-Django grew from a very practical need: World Online, a newspaper Web
-operation, is responsible for building intensive Web applications on journalism
-deadlines. In the fast-paced newsroom, World Online often has only a matter of
-hours to take a complicated Web application from concept to public launch.
-
-At the same time, the World Online Web developers have consistently been
-perfectionists when it comes to following best practices of Web development.
-
-In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison)
-ditched PHP and began using Python to develop its Web sites. As they built
-intensive, richly interactive sites such as Lawrence.com, they began to extract
-a generic Web development framework that let them build Web applications more
-and more quickly. They tweaked this framework constantly, adding improvements
-over two years.
-
-In summer 2005, World Online decided to open-source the resulting software,
-Django. Django would not be possible without a whole host of open-source
-projects -- `Apache`_, `Python`_, and `PostgreSQL`_ to name a few -- and we're
-thrilled to be able to give something back to the open-source community.
-
-.. _Apache: http://httpd.apache.org/
-.. _Python: http://www.python.org/
-.. _PostgreSQL: http://www.postgresql.org/
-
-What does "Django" mean, and how do you pronounce it?
------------------------------------------------------
-
-Django is named after `Django Reinhardt`_, a gypsy jazz guitarist from the 1930s
-to early 1950s. To this day, he's considered one of the best guitarists of all time.
-
-Listen to his music. You'll like it.
-
-Django is pronounced **JANG**-oh. Rhymes with FANG-oh. The "D" is silent.
-
-We've also recorded an `audio clip of the pronunciation`_.
-
-.. _Django Reinhardt: http://en.wikipedia.org/wiki/Django_Reinhardt
-.. _audio clip of the pronunciation: http://red-bean.com/~adrian/django_pronunciation.mp3
-
-Is Django stable?
------------------
-
-Yes. World Online has been using Django for more than three years. Sites built
-on Django have weathered traffic spikes of over one million hits an hour and a
-number of Slashdottings. Yes, it's quite stable.
-
-Does Django scale?
-------------------
-
-Yes. Compared to development time, hardware is cheap, and so Django is
-designed to take advantage of as much hardware as you can throw at it.
-
-Django uses a "shared-nothing" architecture, which means you can add hardware
-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 `cache framework`_.
-
-.. _`cache framework`: ../cache/
-
-Who's behind this?
-------------------
-
-Django was developed at `World Online`_, the Web department of a newspaper in
-Lawrence, Kansas, USA.
-
-`Adrian Holovaty`_
-    Adrian is a Web developer with a background in journalism. He was lead
-    developer at World Online for 2.5 years, during which time Django was
-    developed and implemented on World Online's sites. Now he works for
-    washingtonpost.com building rich, database-backed information sites, and
-    continues to oversee Django development. He likes playing guitar (Django
-    Reinhardt style) and hacking on side projects such as `chicagocrime.org`_.
-    He lives in Chicago.
-
-    On IRC, Adrian goes by ``adrian_h``.
-
-`Jacob Kaplan-Moss`_
-    Jacob is a whipper-snapper from California who spends equal time coding and
-    cooking. He's lead developer at World Online and actively hacks on various
-    cool side projects. He's contributed to the Python-ObjC bindings and was
-    the first guy to figure out how to write Tivo apps in Python. Lately he's
-    been messing with Python on the PSP. He lives in Lawrence, Kansas.
-
-    On IRC, Jacob goes by ``jacobkm``.
-
-`Simon Willison`_
-    Simon is a well-respected Web developer from England. He had a one-year
-    internship at World Online, during which time he and Adrian developed
-    Django from scratch. The most enthusiastic Brit you'll ever meet, he's
-    passionate about best practices in Web development and has maintained a
-    well-read Web-development blog for years at http://simon.incutio.com.
-    He works for Yahoo UK, where he managed to score the title "Hacker Liason."
-    He lives in London.
-
-    On IRC, Simon goes by ``SimonW``.
-
-`Wilson Miner`_
-    Wilson's design-fu makes us all look like rock stars. By day, he's an
-    interactive designer for `Apple`_. Don't ask him what he's working on, or
-    he'll have to kill you. He lives in San Francisco.
-
-    On IRC, Wilson goes by ``wilsonian``.
-
-.. _`World Online`: http://code.djangoproject.com/wiki/WorldOnline
-.. _`Adrian Holovaty`: http://www.holovaty.com/
-.. _`washingtonpost.com`: http://www.washingtonpost.com/
-.. _`chicagocrime.org`: http://www.chicagocrime.org/
-.. _`Simon Willison`: http://simon.incutio.com/
-.. _`simon.incutio.com`: http://simon.incutio.com/
-.. _`Jacob Kaplan-Moss`: http://www.jacobian.org/
-.. _`Wilson Miner`: http://www.wilsonminer.com/
-.. _`Apple`: http://www.apple.com/
-
-Which sites use Django?
------------------------
-
-The Django wiki features a consistently growing `list of Django-powered sites`_.
-Feel free to add your Django-powered site to the list.
-
-.. _list of Django-powered sites: http://code.djangoproject.com/wiki/DjangoPoweredSites
-
-Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?
------------------------------------------------------------------------------------------------------------------------------------------------------
-
-Well, the standard names are debatable.
-
-In our interpretation of MVC, the "view" describes the data that gets presented
-to the user. It's not necessarily *how* the data *looks*, but *which* data is
-presented. The view describes *which data you see*, not *how you see it.* It's
-a subtle distinction.
-
-So, in our case, a "view" is the Python callback function for a particular URL,
-because that callback function describes which data is presented.
-
-Furthermore, it's sensible to separate content from presentation -- which is
-where templates come in. In Django, a "view" describes which data is presented,
-but a view normally delegates to a template, which describes *how* the data is
-presented.
-
-Where does the "controller" fit in, then? In Django's case, it's probably the
-framework itself: the machinery that sends a request to the appropriate view,
-according to the Django URL configuration.
-
-If you're hungry for acronyms, you might say that Django is a "MTV" framework
--- that is, "model", "template", and "view." That breakdown makes much more
-sense.
-
-At the end of the day, of course, it comes down to getting stuff done. And,
-regardless of how things are named, Django gets stuff done in a way that's most
-logical to us.
-
-<Framework X> does <feature Y> -- why doesn't Django?
------------------------------------------------------
-
-We're well aware that there are other awesome Web frameworks out there, and
-we're not averse to borrowing ideas where appropriate. However, Django was
-developed precisely because we were unhappy with the status quo, so please be
-aware that "because <Framework X> does it" is not going to be sufficient reason
-to add a given feature to Django.
-
-Why did you write all of Django from scratch, instead of using other Python libraries?
---------------------------------------------------------------------------------------
-
-When Django was originally written a couple of years ago, Adrian and Simon
-spent quite a bit of time exploring the various Python Web frameworks
-available.
-
-In our opinion, none of them were completely up to snuff.
-
-We're picky. You might even call us perfectionists. (With deadlines.)
-
-Over time, we stumbled across open-source libraries that did things we'd
-already implemented. It was reassuring to see other people solving similar
-problems in similar ways, but it was too late to integrate outside code: We'd
-already written, tested and implemented our own framework bits in several
-production settings -- and our own code met our needs delightfully.
-
-In most cases, however, we found that existing frameworks/tools inevitably had
-some sort of fundamental, fatal flaw that made us squeamish. No tool fit our
-philosophies 100%.
-
-Like we said: We're picky.
-
-We've documented our philosophies on the `design philosophies page`_.
-
-.. _design philosophies page: ../design_philosophies/
-
-Do you have any of those nifty "screencast" things?
----------------------------------------------------
-
-You can bet your bottom they're on the way. But, since we're still hammering
-out a few points, we want to make sure they reflect the final state of things
-at Django 1.0, not some intermediary step. In other words, we don't want to
-spend a lot of energy creating screencasts yet, because Django APIs will shift.
-
-Is Django a content-management-system (CMS)?
---------------------------------------------
-
-No, Django is not a CMS, or any sort of "turnkey product" in and of itself.
-It's a Web framework; it's a programming tool that lets you build Web sites.
-
-For example, it doesn't make much sense to compare Django to something like
-Drupal_, because Django is something you use to *create* things like Drupal.
-
-Of course, Django's automatic admin site is fantastic and timesaving -- but
-the admin site is one module of Django the framework. Furthermore, although
-Django has special conveniences for building "CMS-y" apps, that doesn't mean
-it's not just as appropriate for building "non-CMS-y" apps (whatever that
-means!).
-
-.. _Drupal: http://drupal.org/
-
-When will you release Django 1.0?
----------------------------------
-
-See our `version one roadmap`_ for the detailed timeline. We're aiming for
-September 2, 2008.
-
-.. _version one roadmap: http://code.djangoproject.com/wiki/VersionOneRoadmap
-
-How can I download the Django documentation to read it offline?
----------------------------------------------------------------
-
-The Django docs are available in the ``docs`` directory of each Django tarball
-release. These docs are in ReST (ReStructured Text) format, and each text file
-corresponds to a Web page on the official Django site.
-
-Because the documentation is `stored in revision control`_, you can browse
-documentation changes just like you can browse code changes.
-
-Technically, the docs on Django's site are generated from the latest development
-versions of those ReST documents, so the docs on the Django site may offer more
-information than the docs that come with the latest Django release.
-
-.. _stored in revision control: http://code.djangoproject.com/browser/django/trunk/docs
-
-Where can I find Django developers for hire?
---------------------------------------------
-
-Consult our `developers for hire page`_ for a list of Django developers who
-would be happy to help you.
-
-You might also be interested in posting a job to http://djangogigs.com/ .
-If you want to find Django-capable people in your local area, try
-http://djangopeople.net/ .
-
-.. _developers for hire page: http://code.djangoproject.com/wiki/DevelopersForHire
-
-Installation questions
-======================
-
-How do I get started?
----------------------
-
-    #. `Download the code`_.
-    #. Install Django (read the `installation guide`_).
-    #. Walk through the tutorial_.
-    #. Check out the rest of the documentation_, and `ask questions`_ if you
-       run into trouble.
-
-.. _`Download the code`: http://www.djangoproject.com/download/
-.. _`installation guide`: ../install/
-.. _tutorial:  ../tutorial01/
-.. _documentation: ../
-.. _ask questions: http://www.djangoproject.com/community/
-
-How do I fix the "install a later version of setuptools" error?
----------------------------------------------------------------
-
-Just run the ``ez_setup.py`` script in the Django distribution.
-
-What are Django's prerequisites?
---------------------------------
-
-Django requires Python_ 2.3 or later. No other Python libraries are required
-for basic Django usage.
-
-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, we recommend
-`Apache 2`_ and mod_python_, although Django follows the WSGI_ spec, which
-means it can run on a variety of server platforms.
-
-If you want to use Django with a database, which is probably the case, you'll
-also need a database engine. PostgreSQL_ is recommended, because we're
-PostgreSQL fans, and MySQL_, `SQLite 3`_, and Oracle_ are also supported.
-
-.. _Python: http://www.python.org/
-.. _Apache 2: http://httpd.apache.org/
-.. _mod_python: http://www.modpython.org/
-.. _WSGI: http://www.python.org/peps/pep-0333.html
-.. _PostgreSQL: http://www.postgresql.org/
-.. _MySQL: http://www.mysql.com/
-.. _`SQLite 3`: http://www.sqlite.org/
-.. _Oracle: http://www.oracle.com/
-
-Do I lose anything by using Python 2.3 versus newer Python versions, such as Python 2.5?
-----------------------------------------------------------------------------------------
-
-No. Django itself is guaranteed to work with any version of Python from 2.3
-and higher.
-
-If you use a Python version newer than 2.3, you will, of course, be able to
-take advantage of newer Python features in your own code, along with the speed
-improvements and other optimizations that have been made to the Python language
-itself. But the Django framework itself should work equally well on 2.3 as it
-does on 2.4 or 2.5.
-
-Do I have to use mod_python?
-----------------------------
-
-Although we recommend mod_python for production use, you don't have to use it,
-thanks to the fact that Django uses an arrangement called WSGI_. Django can
-talk to any WSGI-enabled server. Other non-mod_python deployment setups are
-FastCGI, SCGI or AJP. See `How to use Django with FastCGI, SCGI or AJP`_ for
-full information.
-
-Also, see the `server arrangements wiki page`_ for other deployment strategies.
-
-If you just want to play around and develop things on your local computer, use
-the development Web server that comes with Django. Things should Just Work.
-
-.. _WSGI: http://www.python.org/peps/pep-0333.html
-.. _How to use Django with FastCGI, SCGI or AJP: ../fastcgi/
-.. _server arrangements wiki page: http://code.djangoproject.com/wiki/ServerArrangements
-
-How do I install mod_python on Windows?
----------------------------------------
-
-    * For Python 2.4, grab mod_python from `win32 build of mod_python for
-      Python 2.4`_.
-    * For Python 2.4, check out this `Django on Windows howto`_.
-    * For Python 2.3, grab mod_python from http://www.modpython.org/ and read
-      `Running mod_python on Apache on Windows2000`_.
-    * Also, try this (not Windows-specific) `guide to getting mod_python
-      working`_.
-
-.. _`win32 build of mod_python for Python 2.4`: http://www.lehuen.com/nicolas/index.php/2005/02/21/39-win32-build-of-mod_python-314-for-python-24
-.. _`Django on Windows howto`: http://thinkhole.org/wp/django-on-windows/
-.. _`Running mod_python on Apache on Windows2000`: http://groups-beta.google.com/group/comp.lang.python/msg/139af8c83a5a9d4f
-.. _`guide to getting mod_python working`: http://www.dscpl.com.au/articles/modpython-001.html
-
-Will Django run under shared hosting (like TextDrive or Dreamhost)?
--------------------------------------------------------------------
-
-See our `Django-friendly Web hosts`_ page.
-
-.. _`Django-friendly Web hosts`: http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts
-
-Should I use the official version or development version?
----------------------------------------------------------
-
-The Django developers improve Django every day and are pretty good about not
-checking in broken code. We use the development code (from the Subversion
-repository) directly on our servers, so we consider it stable. With that in
-mind, we recommend that you use the latest development code, because it
-generally contains more features and fewer bugs than the "official" releases.
-
-Using Django
-============
-
-Why do I get an error about importing DJANGO_SETTINGS_MODULE?
--------------------------------------------------------------
-
-Make sure that:
-
-    * The environment variable DJANGO_SETTINGS_MODULE is set to a fully-qualified
-      Python module (i.e. "mysite.settings").
-
-    * Said module is on ``sys.path`` (``import mysite.settings`` should work).
-
-    * The module doesn't contain syntax errors (of course).
-
-    * If you're using mod_python but *not* using Django's request handler,
-      you'll need to work around a mod_python bug related to the use of
-      ``SetEnv``; before you import anything from Django you'll need to do
-      the following::
-
-            os.environ.update(req.subprocess_env)
-
-      (where ``req`` is the mod_python request object).
-
-I can't stand your template language. Do I have to use it?
-----------------------------------------------------------
-
-We happen to think our template engine is the best thing since chunky bacon,
-but we recognize that choosing a template language runs close to religion.
-There's nothing about Django that requires using the template language, so
-if you're attached to ZPT, Cheetah, or whatever, feel free to use those.
-
-Do I have to use your model/database layer?
--------------------------------------------
-
-Nope. Just like the template system, the model/database layer is decoupled from
-the rest of the framework.
-
-The one exception is: If you use a different database library, you won't get to
-use Django's automatically-generated admin site. That app is coupled to the
-Django database layer.
-
-How do I use image and file fields?
------------------------------------
-
-Using a ``FileField`` or an ``ImageField`` in a model takes a few steps:
-
-    #. In your settings file, define ``MEDIA_ROOT`` as the full path to
-       a directory where you'd like Django to store uploaded files. (For
-       performance, these files are not stored in the database.) Define
-       ``MEDIA_URL`` as the base public URL of that directory. Make sure that
-       this directory is writable by the Web server's user account.
-
-    #. Add the ``FileField`` or ``ImageField`` to your model, making sure
-       to define the ``upload_to`` option to tell Django to which subdirectory
-       of ``MEDIA_ROOT`` it should upload files.
-
-    #. All that will be stored in your database is a path to the file
-       (relative to ``MEDIA_ROOT``). You'll most likely want to use the
-       convenience ``get_<fieldname>_url`` function provided by Django. For
-       example, if your ``ImageField`` is called ``mug_shot``, you can get the
-       absolute URL to your image in a template with
-       ``{{ object.get_mug_shot_url }}``.
-
-Databases and models
-====================
-
-How can I see the raw SQL queries Django is running?
-----------------------------------------------------
-
-Make sure your Django ``DEBUG`` setting is set to ``True``. Then, just do
-this::
-
-    >>> from django.db import connection
-    >>> connection.queries
-    [{'sql': 'SELECT polls_polls.id,polls_polls.question,polls_polls.pub_date FROM polls_polls',
-    'time': '0.002'}]
-
-``connection.queries`` is only available if ``DEBUG`` is ``True``. It's a list
-of dictionaries in order of query execution. Each dictionary has the following::
-
-    ``sql`` -- The raw SQL statement
-    ``time`` -- How long the statement took to execute, in seconds.
-
-``connection.queries`` includes all SQL statements -- INSERTs, UPDATES,
-SELECTs, etc. Each time your app hits the database, the query will be recorded.
-
-Can I use Django with a pre-existing database?
-----------------------------------------------
-
-Yes. See `Integrating with a legacy database`_.
-
-.. _`Integrating with a legacy database`: ../legacy_databases/
-
-If I make changes to a model, how do I update the database?
------------------------------------------------------------
-
-If you don't mind clearing data, your project's ``manage.py`` utility has an
-option to reset the SQL for a particular application::
-
-    manage.py reset appname
-
-This drops any tables associated with ``appname`` and recreates them.
-
-If you do care about deleting data, you'll have to execute the ``ALTER TABLE``
-statements manually in your database. That's the way we've always done it,
-because dealing with data is a very sensitive operation that we've wanted to
-avoid automating. That said, there's some work being done to add partially
-automated database-upgrade functionality.
-
-Do Django models support multiple-column primary keys?
-------------------------------------------------------
-
-No. Only single-column primary keys are supported.
-
-But this isn't an issue in practice, because there's nothing stopping you from
-adding other constraints (using the ``unique_together`` model option or
-creating the constraint directly in your database), and enforcing the
-uniqueness at that level. Single-column primary keys are needed for things such
-as the admin interface to work; e.g., you need a simple way of being able to
-specify an object to edit or delete.
-
-How do I add database-specific options to my CREATE TABLE statements, such as specifying MyISAM as the table type?
-------------------------------------------------------------------------------------------------------------------
-
-We try to avoid adding special cases in the Django code to accommodate all the
-database-specific options such as table type, etc. If you'd like to use any of
-these options, create an `SQL initial data file`_ that contains ``ALTER TABLE``
-statements that do what you want to do. The initial data files are executed in
-your database after the ``CREATE TABLE`` statements.
-
-For example, if you're using MySQL and want your tables to use the MyISAM table
-type, create an initial data file and put something like this in it::
-
-    ALTER TABLE myapp_mytable ENGINE=MyISAM;
-
-As explained in the `SQL initial data file`_ documentation, this SQL file can
-contain arbitrary SQL, so you can make any sorts of changes you need to make.
-
-.. _SQL initial data file: ../model-api/#providing-initial-sql-data
-
-Why is Django leaking memory?
------------------------------
-
-Django isn't known to leak memory. If you find your Django processes are
-allocating more and more memory, with no sign of releasing it, check to make
-sure your ``DEBUG`` setting is set to ``True``. If ``DEBUG`` is ``True``, then
-Django saves a copy of every SQL statement it has executed.
-
-(The queries are saved in ``django.db.connection.queries``. See
-`How can I see the raw SQL queries Django is running?`_.)
-
-To fix the problem, set ``DEBUG`` to ``False``.
-
-If you need to clear the query list manually at any point in your functions,
-just call ``reset_queries()``, like this::
-
-    from django import db
-    db.reset_queries()
-
-The admin site
-==============
-
-I can't log in. When I enter a valid username and password, it just brings up the login page again, with no error messages.
----------------------------------------------------------------------------------------------------------------------------
-
-The login cookie isn't being set correctly, because the domain of the cookie
-sent out by Django doesn't match the domain in your browser. Try these two
-things:
-
-    * Set the ``SESSION_COOKIE_DOMAIN`` setting in your admin config file
-      to match your domain. For example, if you're going to
-      "http://www.mysite.com/admin/" in your browser, in
-      "myproject.settings" you should set ``SESSION_COOKIE_DOMAIN = 'www.mysite.com'``.
-
-    * Some browsers (Firefox?) don't like to accept cookies from domains that
-      don't have dots in them. If you're running the admin site on "localhost"
-      or another domain that doesn't have a dot in it, try going to
-      "localhost.localdomain" or "127.0.0.1". And set
-      ``SESSION_COOKIE_DOMAIN`` accordingly.
-
-I can't log in. When I enter a valid username and password, it brings up the login page again, with a "Please enter a correct username and password" error.
------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-If you're sure your username and password are correct, make sure your user
-account has ``is_active`` and ``is_staff`` set to True. The admin site only
-allows access to users with those two fields both set to True.
-
-How can I prevent the cache middleware from caching the admin site?
--------------------------------------------------------------------
-
-Set the ``CACHE_MIDDLEWARE_ANONYMOUS_ONLY`` setting to ``True``. See the
-`cache documentation`_ for more information.
-
-.. _cache documentation: ../cache/#the-per-site-cache
-
-How do I automatically set a field's value to the user who last edited the object in the admin?
------------------------------------------------------------------------------------------------
-
-At this point, Django doesn't have an official way to do this. But it's an oft-requested
-feature, so we're discussing how it can be implemented. The problem is we don't want to couple
-the model layer with the admin layer with the request layer (to get the current user). It's a
-tricky problem.
-
-One person hacked up a `solution that doesn't require patching Django`_, but note that it's an
-unofficial solution, and there's no guarantee it won't break at some point.
-
-.. _solution that doesn't require patching Django: http://lukeplant.me.uk/blog.php?id=1107301634
-
-How do I limit admin access so that objects can only be edited by the users who created them?
----------------------------------------------------------------------------------------------
-
-See the answer to the previous question.
-
-My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python.
----------------------------------------------------------------------------------------------------------------------------
-
-See `serving the admin files`_ in the "How to use Django with mod_python"
-documentation.
-
-.. _serving the admin files: ../modpython/#serving-the-admin-files
-
-My "list_filter" contains a ManyToManyField, but the filter doesn't display.
-----------------------------------------------------------------------------
-
-Django won't bother displaying the filter for a ``ManyToManyField`` if there
-are fewer than two related objects.
-
-For example, if your ``list_filter`` includes ``sites``, and there's only one
-site in your database, it won't display a "Site" filter. In that case,
-filtering by site would be meaningless.
-
-How can I customize the functionality of the admin interface?
--------------------------------------------------------------
-
-You've got several options. If you want to piggyback on top of an add/change
-form that Django automatically generates, you can attach arbitrary JavaScript
-modules to the page via the model's ``class Admin`` ``js`` parameter. That
-parameter is a list of URLs, as strings, pointing to JavaScript modules that
-will be included within the admin form via a ``<script>`` tag.
-
-If you want more flexibility than simply tweaking the auto-generated forms,
-feel free to write custom views for the admin. The admin is powered by Django
-itself, and you can write custom views that hook into the authentication
-system, check permissions and do whatever else they need to do.
-
-If you want to customize the look-and-feel of the admin interface, read the
-next question.
-
-The dynamically-generated admin site is ugly! How can I change it?
-------------------------------------------------------------------
-
-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
-`guide to the CSS used in the admin`_ to get you started.
-
-.. _`guide to the CSS used in the admin`: ../admin_css/
-
-How do I create users without having to edit password hashes?
--------------------------------------------------------------
-
-If you'd like to use the admin site to create users, upgrade to the Django
-development version, where this problem was fixed on Aug. 4, 2006.
-
-You can also use the Python API. See `creating users`_ for full info.
-
-.. _creating users: ../authentication/#creating-users
-
-Getting help
-============
-
-How do I do X? Why doesn't Y work? Where can I go to get help?
---------------------------------------------------------------
-
-If this FAQ doesn't contain an answer to your question, you might want to
-try the `django-users mailing list`_. Feel free to ask any question related
-to installing, using, or debugging Django.
-
-If you prefer IRC, the `#django IRC channel`_ on the Freenode IRC network is an
-active community of helpful individuals who may be able to solve your problem.
-
-.. _`django-users mailing list`: http://groups.google.com/group/django-users
-.. _`#django IRC channel`: irc://irc.freenode.net/django
-
-Why hasn't my message appeared on django-users?
------------------------------------------------
-
-django-users_ has a lot of subscribers. This is good for the community, as
-it means many people are available to contribute answers to questions.
-Unfortunately, it also means that django-users_ is an attractive target for
-spammers.
-
-In order to combat the spam problem, when you join the django-users_ mailing
-list, we manually moderate the first message you send to the list. This means
-that spammers get caught, but it also means that your first question to the
-list might take a little longer to get answered. We apologize for any
-inconvenience that this policy may cause.
-
-.. _django-users: http://groups.google.com/group/django-users
-
-Nobody on django-users answered my question! What should I do?
---------------------------------------------------------------
-
-Try making your question more specific, or provide a better example of your
-problem.
-
-As with most open-source mailing lists, the folks on django-users_ are
-volunteers. If nobody has answered your question, it may be because nobody
-knows the answer, it may be because nobody can understand the question, or it
-may be that everybody that can help is busy. One thing you might try is to ask
-the question on IRC -- visit the `#django IRC channel`_ on the Freenode IRC
-network.
-
-You might notice we have a second mailing list, called django-developers_ --
-but please don't e-mail support questions to this mailing list. This list is
-for discussion of the development of Django itself. Asking a tech support
-question there is considered quite impolite.
-
-.. _django-developers: http://groups.google.com/group/django-developers
-
-I think I've found a bug! What should I do?
--------------------------------------------
-
-Detailed instructions on how to handle a potential bug can be found in our
-`Guide to contributing to Django`_.
-
-.. _`Guide to contributing to Django`: ../contributing/#reporting-bugs
-
-I think I've found a security problem! What should I do?
---------------------------------------------------------
-
-If you think you've found a security problem with Django, please send a message
-to security@djangoproject.com. This is a private list only open to long-time,
-highly trusted Django developers, and its archives are not publicly readable.
-
-Due to the sensitive nature of security issues, we ask that if you think you
-have found a security problem, *please* don't send a message to one of the
-public mailing lists. Django has a `policy for handling security issues`_;
-while a defect is outstanding, we would like to minimize any damage that
-could be inflicted through public knowledge of that defect.
-
-.. _`policy for handling security issues`: ../contributing/#reporting-security-issues
-
-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 `Contributing to Django`_.
-
-.. _`Contributing to Django`: ../contributing/
-
-I submitted a bug fix in the ticket system several weeks ago. Why are you ignoring my patch?
---------------------------------------------------------------------------------------------
-
-Don't worry: We're not ignoring you!
-
-It's important to understand there is a difference between "a ticket is being
-ignored" and "a ticket has not been attended to yet." Django's ticket system
-contains hundreds of open tickets, of various degrees of impact on end-user
-functionality, and Django's developers have to review and prioritize.
-
-On top of that: the people who work on Django are all volunteers. As a result,
-the amount of time that we have to work on the framework is limited and will
-vary from week to week depending on our spare time. If we're busy, we may not
-be able to spend as much time on Django as we might want.
-
-Besides, if your feature request stands no chance of inclusion in Django, we
-won't ignore it -- we'll just close the ticket. So if your ticket is still
-open, it doesn't mean we're ignoring you; it just means we haven't had time to
-look at it yet.
diff --git a/docs/faq/admin.txt b/docs/faq/admin.txt
new file mode 100644
index 0000000000..4701341747
--- /dev/null
+++ b/docs/faq/admin.txt
@@ -0,0 +1,103 @@
+.. _faq-admin:
+
+FAQ: The admin
+==============
+
+I can't log in. When I enter a valid username and password, it just brings up the login page again, with no error messages.
+---------------------------------------------------------------------------------------------------------------------------
+
+The login cookie isn't being set correctly, because the domain of the cookie
+sent out by Django doesn't match the domain in your browser. Try these two
+things:
+
+    * Set the ``SESSION_COOKIE_DOMAIN`` setting in your admin config file
+      to match your domain. For example, if you're going to
+      "http://www.example.com/admin/" in your browser, in
+      "myproject.settings" you should set ``SESSION_COOKIE_DOMAIN = 'www.example.com'``.
+
+    * Some browsers (Firefox?) don't like to accept cookies from domains that
+      don't have dots in them. If you're running the admin site on "localhost"
+      or another domain that doesn't have a dot in it, try going to
+      "localhost.localdomain" or "127.0.0.1". And set
+      ``SESSION_COOKIE_DOMAIN`` accordingly.
+
+I can't log in. When I enter a valid username and password, it brings up the login page again, with a "Please enter a correct username and password" error.
+-----------------------------------------------------------------------------------------------------------------------------------------------------------
+
+If you're sure your username and password are correct, make sure your user
+account has ``is_active`` and ``is_staff`` set to True. The admin site only
+allows access to users with those two fields both set to True.
+
+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.
+
+How do I automatically set a field's value to the user who last edited the object in the admin?
+-----------------------------------------------------------------------------------------------
+
+At this point, Django doesn't have an official way to do this. But it's an oft-requested
+feature, so we're discussing how it can be implemented. The problem is we don't want to couple
+the model layer with the admin layer with the request layer (to get the current user). It's a
+tricky problem.
+
+One person hacked up a `solution that doesn't require patching Django`_, but note that it's an
+unofficial solution, and there's no guarantee it won't break at some point.
+
+.. _solution that doesn't require patching Django: http://lukeplant.me.uk/blog.php?id=1107301634
+
+How do I limit admin access so that objects can only be edited by the users who created them?
+---------------------------------------------------------------------------------------------
+
+See the answer to the previous question.
+
+My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python.
+---------------------------------------------------------------------------------------------------------------------------
+
+See :ref:`serving the admin files <howto-deployment-modpython-serving-the-admin-files`
+in the "How to use Django with mod_python" documentation.
+
+My "list_filter" contains a ManyToManyField, but the filter doesn't display.
+----------------------------------------------------------------------------
+
+Django won't bother displaying the filter for a ``ManyToManyField`` if there
+are fewer than two related objects.
+
+For example, if your ``list_filter`` includes ``sites``, and there's only one
+site in your database, it won't display a "Site" filter. In that case,
+filtering by site would be meaningless.
+
+How can I customize the functionality of the admin interface?
+-------------------------------------------------------------
+
+You've got several options. If you want to piggyback on top of an add/change
+form that Django automatically generates, you can attach arbitrary JavaScript
+modules to the page via the model's ``class Admin`` ``js`` parameter. That
+parameter is a list of URLs, as strings, pointing to JavaScript modules that
+will be included within the admin form via a ``<script>`` tag.
+
+If you want more flexibility than simply tweaking the auto-generated forms,
+feel free to write custom views for the admin. The admin is powered by Django
+itself, and you can write custom views that hook into the authentication
+system, check permissions and do whatever else they need to do.
+
+If you want to customize the look-and-feel of the admin interface, read the
+next question.
+
+The dynamically-generated admin site is ugly! How can I change it?
+------------------------------------------------------------------
+
+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.
+
+How do I create users without having to edit password hashes?
+-------------------------------------------------------------
+
+If you'd like to use the admin site to create users, upgrade to the Django
+development version, where this problem was fixed on Aug. 4, 2006.
+
+You can also use the Python API. See :ref:`creating users <topics-auth-creating-users>` for full info.
diff --git a/docs/faq/contributing.txt b/docs/faq/contributing.txt
new file mode 100644
index 0000000000..9e6c46b6fc
--- /dev/null
+++ b/docs/faq/contributing.txt
@@ -0,0 +1,30 @@
+.. _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>`.
+
+I submitted a bug fix in the ticket system several weeks ago. Why are you ignoring my patch?
+--------------------------------------------------------------------------------------------
+
+Don't worry: We're not ignoring you!
+
+It's important to understand there is a difference between "a ticket is being
+ignored" and "a ticket has not been attended to yet." Django's ticket system
+contains hundreds of open tickets, of various degrees of impact on end-user
+functionality, and Django's developers have to review and prioritize.
+
+On top of that: the people who work on Django are all volunteers. As a result,
+the amount of time that we have to work on the framework is limited and will
+vary from week to week depending on our spare time. If we're busy, we may not
+be able to spend as much time on Django as we might want.
+
+Besides, if your feature request stands no chance of inclusion in Django, we
+won't ignore it -- we'll just close the ticket. So if your ticket is still
+open, it doesn't mean we're ignoring you; it just means we haven't had time to
+look at it yet.
diff --git a/docs/faq/general.txt b/docs/faq/general.txt
new file mode 100644
index 0000000000..346ddd643c
--- /dev/null
+++ b/docs/faq/general.txt
@@ -0,0 +1,256 @@
+.. _faq-general:
+
+FAQ: General
+============
+
+Why does this project exist?
+----------------------------
+
+Django grew from a very practical need: World Online, a newspaper Web
+operation, is responsible for building intensive Web applications on journalism
+deadlines. In the fast-paced newsroom, World Online often has only a matter of
+hours to take a complicated Web application from concept to public launch.
+
+At the same time, the World Online Web developers have consistently been
+perfectionists when it comes to following best practices of Web development.
+
+In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison)
+ditched PHP and began using Python to develop its Web sites. As they built
+intensive, richly interactive sites such as Lawrence.com, they began to extract
+a generic Web development framework that let them build Web applications more
+and more quickly. They tweaked this framework constantly, adding improvements
+over two years.
+
+In summer 2005, World Online decided to open-source the resulting software,
+Django. Django would not be possible without a whole host of open-source
+projects -- `Apache`_, `Python`_, and `PostgreSQL`_ to name a few -- and we're
+thrilled to be able to give something back to the open-source community.
+
+.. _Apache: http://httpd.apache.org/
+.. _Python: http://www.python.org/
+.. _PostgreSQL: http://www.postgresql.org/
+
+What does "Django" mean, and how do you pronounce it?
+-----------------------------------------------------
+
+Django is named after `Django Reinhardt`_, a gypsy jazz guitarist from the 1930s
+to early 1950s. To this day, he's considered one of the best guitarists of all time.
+
+Listen to his music. You'll like it.
+
+Django is pronounced **JANG**-oh. Rhymes with FANG-oh. The "D" is silent.
+
+We've also recorded an `audio clip of the pronunciation`_.
+
+.. _Django Reinhardt: http://en.wikipedia.org/wiki/Django_Reinhardt
+.. _audio clip of the pronunciation: http://red-bean.com/~adrian/django_pronunciation.mp3
+
+Is Django stable?
+-----------------
+
+Yes. World Online has been using Django for more than three years. Sites built
+on Django have weathered traffic spikes of over one million hits an hour and a
+number of Slashdottings. Yes, it's quite stable.
+
+Does Django scale?
+------------------
+
+Yes. Compared to development time, hardware is cheap, and so Django is
+designed to take advantage of as much hardware as you can throw at it.
+
+Django uses a "shared-nothing" architecture, which means you can add hardware
+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>`.
+
+Who's behind this?
+------------------
+
+Django was developed at `World Online`_, the Web department of a newspaper in
+Lawrence, Kansas, USA.
+
+`Adrian Holovaty`_
+    Adrian is a Web developer with a background in journalism. He was lead
+    developer at World Online for 2.5 years, during which time Django was
+    developed and implemented on World Online's sites. Now he works for
+    washingtonpost.com building rich, database-backed information sites, and
+    continues to oversee Django development. He likes playing guitar (Django
+    Reinhardt style) and hacking on side projects such as `chicagocrime.org`_.
+    He lives in Chicago.
+
+    On IRC, Adrian goes by ``adrian_h``.
+
+`Jacob Kaplan-Moss`_
+    Jacob is a whipper-snapper from California who spends equal time coding and
+    cooking. He's lead developer at World Online and actively hacks on various
+    cool side projects. He's contributed to the Python-ObjC bindings and was
+    the first guy to figure out how to write Tivo apps in Python. Lately he's
+    been messing with Python on the PSP. He lives in Lawrence, Kansas.
+
+    On IRC, Jacob goes by ``jacobkm``.
+
+`Simon Willison`_
+    Simon is a well-respected Web developer from England. He had a one-year
+    internship at World Online, during which time he and Adrian developed
+    Django from scratch. The most enthusiastic Brit you'll ever meet, he's
+    passionate about best practices in Web development and has maintained a
+    well-read Web-development blog for years at http://simon.incutio.com.
+    He works for Yahoo UK, where he managed to score the title "Hacker Liason."
+    He lives in London.
+
+    On IRC, Simon goes by ``SimonW``.
+
+`Wilson Miner`_
+    Wilson's design-fu makes us all look like rock stars. By day, he's an
+    interactive designer for `Apple`_. Don't ask him what he's working on, or
+    he'll have to kill you. He lives in San Francisco.
+
+    On IRC, Wilson goes by ``wilsonian``.
+
+.. _`World Online`: http://code.djangoproject.com/wiki/WorldOnline
+.. _`Adrian Holovaty`: http://www.holovaty.com/
+.. _`washingtonpost.com`: http://www.washingtonpost.com/
+.. _`chicagocrime.org`: http://www.chicagocrime.org/
+.. _`Simon Willison`: http://simon.incutio.com/
+.. _`simon.incutio.com`: http://simon.incutio.com/
+.. _`Jacob Kaplan-Moss`: http://www.jacobian.org/
+.. _`Wilson Miner`: http://www.wilsonminer.com/
+.. _`Apple`: http://www.apple.com/
+
+Which sites use Django?
+-----------------------
+
+The Django wiki features a consistently growing `list of Django-powered sites`_.
+Feel free to add your Django-powered site to the list.
+
+.. _list of Django-powered sites: http://code.djangoproject.com/wiki/DjangoPoweredSites
+
+.. _mtv:
+
+Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?
+-----------------------------------------------------------------------------------------------------------------------------------------------------
+
+Well, the standard names are debatable.
+
+In our interpretation of MVC, the "view" describes the data that gets presented
+to the user. It's not necessarily *how* the data *looks*, but *which* data is
+presented. The view describes *which data you see*, not *how you see it.* It's
+a subtle distinction.
+
+So, in our case, a "view" is the Python callback function for a particular URL,
+because that callback function describes which data is presented.
+
+Furthermore, it's sensible to separate content from presentation -- which is
+where templates come in. In Django, a "view" describes which data is presented,
+but a view normally delegates to a template, which describes *how* the data is
+presented.
+
+Where does the "controller" fit in, then? In Django's case, it's probably the
+framework itself: the machinery that sends a request to the appropriate view,
+according to the Django URL configuration.
+
+If you're hungry for acronyms, you might say that Django is a "MTV" framework
+-- that is, "model", "template", and "view." That breakdown makes much more
+sense.
+
+At the end of the day, of course, it comes down to getting stuff done. And,
+regardless of how things are named, Django gets stuff done in a way that's most
+logical to us.
+
+<Framework X> does <feature Y> -- why doesn't Django?
+-----------------------------------------------------
+
+We're well aware that there are other awesome Web frameworks out there, and
+we're not averse to borrowing ideas where appropriate. However, Django was
+developed precisely because we were unhappy with the status quo, so please be
+aware that "because <Framework X> does it" is not going to be sufficient reason
+to add a given feature to Django.
+
+Why did you write all of Django from scratch, instead of using other Python libraries?
+--------------------------------------------------------------------------------------
+
+When Django was originally written a couple of years ago, Adrian and Simon
+spent quite a bit of time exploring the various Python Web frameworks
+available.
+
+In our opinion, none of them were completely up to snuff.
+
+We're picky. You might even call us perfectionists. (With deadlines.)
+
+Over time, we stumbled across open-source libraries that did things we'd
+already implemented. It was reassuring to see other people solving similar
+problems in similar ways, but it was too late to integrate outside code: We'd
+already written, tested and implemented our own framework bits in several
+production settings -- and our own code met our needs delightfully.
+
+In most cases, however, we found that existing frameworks/tools inevitably had
+some sort of fundamental, fatal flaw that made us squeamish. No tool fit our
+philosophies 100%.
+
+Like we said: We're picky.
+
+We've documented our philosophies on the
+:ref:`design philosophies page <misc-design-philosophies>`.
+
+Do you have any of those nifty "screencast" things?
+---------------------------------------------------
+
+You can bet your bottom they're on the way. But, since we're still hammering
+out a few points, we want to make sure they reflect the final state of things
+at Django 1.0, not some intermediary step. In other words, we don't want to
+spend a lot of energy creating screencasts yet, because Django APIs will shift.
+
+Is Django a content-management-system (CMS)?
+--------------------------------------------
+
+No, Django is not a CMS, or any sort of "turnkey product" in and of itself.
+It's a Web framework; it's a programming tool that lets you build Web sites.
+
+For example, it doesn't make much sense to compare Django to something like
+Drupal_, because Django is something you use to *create* things like Drupal.
+
+Of course, Django's automatic admin site is fantastic and timesaving -- but
+the admin site is one module of Django the framework. Furthermore, although
+Django has special conveniences for building "CMS-y" apps, that doesn't mean
+it's not just as appropriate for building "non-CMS-y" apps (whatever that
+means!).
+
+.. _Drupal: http://drupal.org/
+
+When will you release Django 1.0?
+---------------------------------
+
+See our `version one roadmap`_ for the detailed timeline. We're aiming for
+September 2, 2008.
+
+.. _version one roadmap: http://code.djangoproject.com/wiki/VersionOneRoadmap
+
+How can I download the Django documentation to read it offline?
+---------------------------------------------------------------
+
+The Django docs are available in the ``docs`` directory of each Django tarball
+release. These docs are in ReST (ReStructured Text) format, and each text file
+corresponds to a Web page on the official Django site.
+
+Because the documentation is `stored in revision control`_, you can browse
+documentation changes just like you can browse code changes.
+
+Technically, the docs on Django's site are generated from the latest development
+versions of those ReST documents, so the docs on the Django site may offer more
+information than the docs that come with the latest Django release.
+
+.. _stored in revision control: http://code.djangoproject.com/browser/django/trunk/docs
+
+Where can I find Django developers for hire?
+--------------------------------------------
+
+Consult our `developers for hire page`_ for a list of Django developers who
+would be happy to help you.
+
+You might also be interested in posting a job to http://djangogigs.com/ .
+If you want to find Django-capable people in your local area, try
+http://djangopeople.net/ .
+
+.. _developers for hire page: http://code.djangoproject.com/wiki/DevelopersForHire
diff --git a/docs/faq/help.txt b/docs/faq/help.txt
new file mode 100644
index 0000000000..5d7faf6fec
--- /dev/null
+++ b/docs/faq/help.txt
@@ -0,0 +1,75 @@
+.. _faq-help:
+
+FAQ: Getting Help
+=================
+
+How do I do X? Why doesn't Y work? Where can I go to get help?
+--------------------------------------------------------------
+
+If this FAQ doesn't contain an answer to your question, you might want to
+try the `django-users mailing list`_. Feel free to ask any question related
+to installing, using, or debugging Django.
+
+If you prefer IRC, the `#django IRC channel`_ on the Freenode IRC network is an
+active community of helpful individuals who may be able to solve your problem.
+
+.. _`django-users mailing list`: http://groups.google.com/group/django-users
+.. _`#django IRC channel`: irc://irc.freenode.net/django
+
+Why hasn't my message appeared on django-users?
+-----------------------------------------------
+
+django-users_ has a lot of subscribers. This is good for the community, as
+it means many people are available to contribute answers to questions.
+Unfortunately, it also means that django-users_ is an attractive target for
+spammers.
+
+In order to combat the spam problem, when you join the django-users_ mailing
+list, we manually moderate the first message you send to the list. This means
+that spammers get caught, but it also means that your first question to the
+list might take a little longer to get answered. We apologize for any
+inconvenience that this policy may cause.
+
+.. _django-users: http://groups.google.com/group/django-users
+
+Nobody on django-users answered my question! What should I do?
+--------------------------------------------------------------
+
+Try making your question more specific, or provide a better example of your
+problem.
+
+As with most open-source mailing lists, the folks on django-users_ are
+volunteers. If nobody has answered your question, it may be because nobody
+knows the answer, it may be because nobody can understand the question, or it
+may be that everybody that can help is busy. One thing you might try is to ask
+the question on IRC -- visit the `#django IRC channel`_ on the Freenode IRC
+network.
+
+You might notice we have a second mailing list, called django-developers_ --
+but please don't e-mail support questions to this mailing list. This list is
+for discussion of the development of Django itself. Asking a tech support
+question there is considered quite impolite.
+
+.. _django-developers: http://groups.google.com/group/django-developers
+
+I think I've found a bug! What should I do?
+-------------------------------------------
+
+Detailed instructions on how to handle a potential bug can be found in our
+:ref:`Guide to contributing to Django <reporting-bugs>`.
+
+I think I've found a security problem! What should I do?
+--------------------------------------------------------
+
+If you think you've found a security problem with Django, please send a message
+to security@djangoproject.com. This is a private list only open to long-time,
+highly trusted Django developers, and its archives are not publicly readable.
+
+Due to the sensitive nature of security issues, we ask that if you think you
+have found a security problem, *please* don't send a message to one of the
+public mailing lists. Django has a
+:ref:`policy for handling security issues <reporting-security-issues>`;
+while a defect is outstanding, we would like to minimize any damage that
+could be inflicted through public knowledge of that defect.
+
+.. _`policy for handling security issues`: ../contributing/#reporting-security-issues
diff --git a/docs/faq/index.txt b/docs/faq/index.txt
new file mode 100644
index 0000000000..d357a3ebb0
--- /dev/null
+++ b/docs/faq/index.txt
@@ -0,0 +1,16 @@
+.. _faq-index:
+
+==========
+Django FAQ
+==========
+
+.. toctree::
+   :maxdepth: 2
+   
+   general
+   install
+   usage
+   help
+   models
+   admin
+   contributing
\ No newline at end of file
diff --git a/docs/faq/install.txt b/docs/faq/install.txt
new file mode 100644
index 0000000000..a6b7742b2f
--- /dev/null
+++ b/docs/faq/install.txt
@@ -0,0 +1,108 @@
+.. _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
+       run into trouble.
+
+.. _`Download the code`: http://www.djangoproject.com/download/
+.. _ask questions: http://www.djangoproject.com/community/
+
+How do I fix the "install a later version of setuptools" error?
+---------------------------------------------------------------
+
+Just run the ``ez_setup.py`` script in the Django distribution.
+
+What are Django's prerequisites?
+--------------------------------
+
+Django requires Python_ 2.3 or later. No other Python libraries are required
+for basic Django usage.
+
+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, we recommend
+`Apache 2`_ and mod_python_, although Django follows the WSGI_ spec, which
+means it can run on a variety of server platforms.
+
+If you want to use Django with a database, which is probably the case, you'll
+also need a database engine. PostgreSQL_ is recommended, because we're
+PostgreSQL fans, and MySQL_, `SQLite 3`_, and Oracle_ are also supported.
+
+.. _Python: http://www.python.org/
+.. _Apache 2: http://httpd.apache.org/
+.. _mod_python: http://www.modpython.org/
+.. _WSGI: http://www.python.org/peps/pep-0333.html
+.. _PostgreSQL: http://www.postgresql.org/
+.. _MySQL: http://www.mysql.com/
+.. _`SQLite 3`: http://www.sqlite.org/
+.. _Oracle: http://www.oracle.com/
+
+Do I lose anything by using Python 2.3 versus newer Python versions, such as Python 2.5?
+----------------------------------------------------------------------------------------
+
+No. Django itself is guaranteed to work with any version of Python from 2.3
+and higher.
+
+If you use a Python version newer than 2.3, you will, of course, be able to
+take advantage of newer Python features in your own code, along with the speed
+improvements and other optimizations that have been made to the Python language
+itself. But the Django framework itself should work equally well on 2.3 as it
+does on 2.4 or 2.5.
+
+Do I have to use mod_python?
+----------------------------
+
+Although we recommend mod_python for production use, you don't have to use it,
+thanks to the fact that Django uses an arrangement called WSGI_. Django can
+talk to any WSGI-enabled server. Other non-mod_python deployment setups are
+FastCGI, SCGI or AJP. See
+:ref:`How to use Django with FastCGI, SCGI or AJP <howto-deployment-fastcgi>`
+for full information.
+
+Also, see the `server arrangements wiki page`_ for other deployment strategies.
+
+If you just want to play around and develop things on your local computer, use
+the development Web server that comes with Django. Things should Just Work.
+
+.. _WSGI: http://www.python.org/peps/pep-0333.html
+.. _server arrangements wiki page: http://code.djangoproject.com/wiki/ServerArrangements
+
+How do I install mod_python on Windows?
+---------------------------------------
+
+    * For Python 2.4, grab mod_python from `win32 build of mod_python for
+      Python 2.4`_.
+    * For Python 2.4, check out this `Django on Windows howto`_.
+    * For Python 2.3, grab mod_python from http://www.modpython.org/ and read
+      `Running mod_python on Apache on Windows2000`_.
+    * Also, try this (not Windows-specific) `guide to getting mod_python
+      working`_.
+
+.. _`win32 build of mod_python for Python 2.4`: http://www.lehuen.com/nicolas/index.php/2005/02/21/39-win32-build-of-mod_python-314-for-python-24
+.. _`Django on Windows howto`: http://thinkhole.org/wp/django-on-windows/
+.. _`Running mod_python on Apache on Windows2000`: http://groups-beta.google.com/group/comp.lang.python/msg/139af8c83a5a9d4f
+.. _`guide to getting mod_python working`: http://www.dscpl.com.au/articles/modpython-001.html
+
+Will Django run under shared hosting (like TextDrive or Dreamhost)?
+-------------------------------------------------------------------
+
+See our `Django-friendly Web hosts`_ page.
+
+.. _`Django-friendly Web hosts`: http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts
+
+Should I use the official version or development version?
+---------------------------------------------------------
+
+The Django developers improve Django every day and are pretty good about not
+checking in broken code. We use the development code (from the Subversion
+repository) directly on our servers, so we consider it stable. With that in
+mind, we recommend that you use the latest development code, because it
+generally contains more features and fewer bugs than the "official" releases.
diff --git a/docs/faq/models.txt b/docs/faq/models.txt
new file mode 100644
index 0000000000..4a33914ec9
--- /dev/null
+++ b/docs/faq/models.txt
@@ -0,0 +1,94 @@
+.. _faq-models:
+
+FAQ: Databases and models
+=========================
+
+How can I see the raw SQL queries Django is running?
+----------------------------------------------------
+
+Make sure your Django ``DEBUG`` setting is set to ``True``. Then, just do
+this::
+
+    >>> from django.db import connection
+    >>> connection.queries
+    [{'sql': 'SELECT polls_polls.id,polls_polls.question,polls_polls.pub_date FROM polls_polls',
+    'time': '0.002'}]
+
+``connection.queries`` is only available if ``DEBUG`` is ``True``. It's a list
+of dictionaries in order of query execution. Each dictionary has the following::
+
+    ``sql`` -- The raw SQL statement
+    ``time`` -- How long the statement took to execute, in seconds.
+
+``connection.queries`` includes all SQL statements -- INSERTs, UPDATES,
+SELECTs, etc. Each time your app hits the database, the query will be recorded.
+
+Can I use Django with a pre-existing database?
+----------------------------------------------
+
+Yes. See :ref:`Integrating with a legacy database <howto-legacy-databases>`.
+
+If I make changes to a model, how do I update the database?
+-----------------------------------------------------------
+
+If you don't mind clearing data, your project's ``manage.py`` utility has an
+option to reset the SQL for a particular application::
+
+    manage.py reset appname
+
+This drops any tables associated with ``appname`` and recreates them.
+
+If you do care about deleting data, you'll have to execute the ``ALTER TABLE``
+statements manually in your database. That's the way we've always done it,
+because dealing with data is a very sensitive operation that we've wanted to
+avoid automating. That said, there's some work being done to add partially
+automated database-upgrade functionality.
+
+Do Django models support multiple-column primary keys?
+------------------------------------------------------
+
+No. Only single-column primary keys are supported.
+
+But this isn't an issue in practice, because there's nothing stopping you from
+adding other constraints (using the ``unique_together`` model option or
+creating the constraint directly in your database), and enforcing the
+uniqueness at that level. Single-column primary keys are needed for things such
+as the admin interface to work; e.g., you need a simple way of being able to
+specify an object to edit or delete.
+
+How do I add database-specific options to my CREATE TABLE statements, such as specifying MyISAM as the table type?
+------------------------------------------------------------------------------------------------------------------
+
+We try to avoid adding special cases in the Django code to accommodate all the
+database-specific options such as table type, etc. If you'd like to use any of
+these options, create an :ref:`SQL initial data file <initial-sql>` that
+contains ``ALTER TABLE`` statements that do what you want to do. The initial
+data files are executed in your database after the ``CREATE TABLE`` statements.
+
+For example, if you're using MySQL and want your tables to use the MyISAM table
+type, create an initial data file and put something like this in it::
+
+    ALTER TABLE myapp_mytable ENGINE=MyISAM;
+
+As explained in the :ref:`SQL initial data file <initial-sql>` documentation,
+this SQL file can contain arbitrary SQL, so you can make any sorts of changes
+you need to make.
+
+Why is Django leaking memory?
+-----------------------------
+
+Django isn't known to leak memory. If you find your Django processes are
+allocating more and more memory, with no sign of releasing it, check to make
+sure your ``DEBUG`` setting is set to ``True``. If ``DEBUG`` is ``True``, then
+Django saves a copy of every SQL statement it has executed.
+
+(The queries are saved in ``django.db.connection.queries``. See
+`How can I see the raw SQL queries Django is running?`_.)
+
+To fix the problem, set ``DEBUG`` to ``False``.
+
+If you need to clear the query list manually at any point in your functions,
+just call ``reset_queries()``, like this::
+
+    from django import db
+    db.reset_queries()
diff --git a/docs/faq/usage.txt b/docs/faq/usage.txt
new file mode 100644
index 0000000000..67565a5807
--- /dev/null
+++ b/docs/faq/usage.txt
@@ -0,0 +1,65 @@
+.. _faq-usage:
+
+FAQ: Using Django
+=================
+
+Why do I get an error about importing DJANGO_SETTINGS_MODULE?
+-------------------------------------------------------------
+
+Make sure that:
+
+    * The environment variable DJANGO_SETTINGS_MODULE is set to a fully-qualified
+      Python module (i.e. "mysite.settings").
+
+    * Said module is on ``sys.path`` (``import mysite.settings`` should work).
+
+    * The module doesn't contain syntax errors (of course).
+
+    * If you're using mod_python but *not* using Django's request handler,
+      you'll need to work around a mod_python bug related to the use of
+      ``SetEnv``; before you import anything from Django you'll need to do
+      the following::
+
+            os.environ.update(req.subprocess_env)
+
+      (where ``req`` is the mod_python request object).
+
+I can't stand your template language. Do I have to use it?
+----------------------------------------------------------
+
+We happen to think our template engine is the best thing since chunky bacon,
+but we recognize that choosing a template language runs close to religion.
+There's nothing about Django that requires using the template language, so
+if you're attached to ZPT, Cheetah, or whatever, feel free to use those.
+
+Do I have to use your model/database layer?
+-------------------------------------------
+
+Nope. Just like the template system, the model/database layer is decoupled from
+the rest of the framework.
+
+The one exception is: If you use a different database library, you won't get to
+use Django's automatically-generated admin site. That app is coupled to the
+Django database layer.
+
+How do I use image and file fields?
+-----------------------------------
+
+Using a ``FileField`` or an ``ImageField`` in a model takes a few steps:
+
+    #. In your settings file, define ``MEDIA_ROOT`` as the full path to
+       a directory where you'd like Django to store uploaded files. (For
+       performance, these files are not stored in the database.) Define
+       ``MEDIA_URL`` as the base public URL of that directory. Make sure that
+       this directory is writable by the Web server's user account.
+
+    #. Add the ``FileField`` or ``ImageField`` to your model, making sure
+       to define the ``upload_to`` option to tell Django to which subdirectory
+       of ``MEDIA_ROOT`` it should upload files.
+
+    #. All that will be stored in your database is a path to the file
+       (relative to ``MEDIA_ROOT``). You'll most likely want to use the
+       convenience ``get_<fieldname>_url`` function provided by Django. For
+       example, if your ``ImageField`` is called ``mug_shot``, you can get the
+       absolute URL to your image in a template with
+       ``{{ object.get_mug_shot_url }}``.
diff --git a/docs/files.txt b/docs/files.txt
deleted file mode 100644
index 29b13a78a9..0000000000
--- a/docs/files.txt
+++ /dev/null
@@ -1,388 +0,0 @@
-==============
-Managing files
-==============
-
-**New in Django development version**
-
-This document describes Django's file access APIs.
-
-By default, Django stores files locally, using the ``MEDIA_ROOT`` and
-``MEDIA_URL`` settings_. The examples below assume that you're using
-these defaults.
-
-However, Django provides ways to write custom `file storage systems`_ that
-allow you to completely customize where and how Django stores files. The
-second half of this document describes how these storage systems work.
-
-.. _file storage systems: `File storage`_
-.. _settings: ../settings/
-
-Using files in models
-=====================
-
-When you use a `FileField`_ or `ImageField`_, Django provides a set of APIs you can use to deal with that file.
-
-.. _filefield: ../model-api/#filefield
-.. _imagefield: ../model-api/#imagefield
-
-Consider the following model, using a ``FileField`` to store a photo::
-
-    class Car(models.Model):
-        name = models.CharField(max_length=255)
-        price = models.DecimalField(max_digits=5, decimal_places=2)
-        photo = models.ImageField(upload_to='cars')
-
-Any ``Car`` instance will have a ``photo`` attribute that you can use to get at
-the details of the attached photo::
-
-    >>> car = Car.object.get(name="57 Chevy")
-    >>> car.photo
-    <ImageFieldFile: chevy.jpg>
-    >>> car.photo.name
-    u'chevy.jpg'
-    >>> car.photo.path
-    u'/media/cars/chevy.jpg'
-    >>> car.photo.url
-    u'http://media.example.com/cars/chevy.jpg'
-
-This object -- ``car.photo`` in the example -- is a ``File`` object, which means
-it has all the methods and attributes described below.
-
-The ``File`` object
-===================
-
-Internally, Django uses a ``django.core.files.File`` any time it needs to
-represent a file. This object is a thin wrapper around Python's `built-in file
-object`_ with some Django-specific additions.
-
-.. _built-in file object: http://docs.python.org/lib/bltin-file-objects.html
-
-Creating ``File`` instances
----------------------------
-
-Most of the time you'll simply use a ``File`` that Django's given you (i.e. a
-file attached to a model as above, or perhaps an `uploaded file`_).
-
-.. _uploaded file: ../upload_handling/
-
-If you need to construct a ``File`` yourself, the easiest way is to create one
-using a Python built-in ``file`` object::
-
-    >>> from django.core.files import File
-
-    # Create a Python file object using open()
-    >>> f = open('/tmp/hello.world', 'w')
-    >>> myfile = File(f)
-
-Now you can use any of the ``File`` attributes and methods defined below.
-
-``File`` attributes and methods
--------------------------------
-
-Django's ``File`` has the following attributes and methods:
-
-``File.path``
-~~~~~~~~~~~~~
-
-The absolute path to the file's location on a local filesystem.
-
-Custom `file storage systems`_ may not store files locally; files stored on
-these systems will have a ``path`` of ``None``.
-
-``File.url``
-~~~~~~~~~~~~
-
-The URL where the file can be retrieved. This is often useful in templates_; for
-example, a bit of a template for displaying a ``Car`` (see above) might look
-like::
-
-    <img src='{{ car.photo.url }}' alt='{{ car.name }}' />
-
-.. _templates: ../templates/
-
-``File.size``
-~~~~~~~~~~~~~
-
-The size of the file in bytes.
-
-``File.open(mode=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Open or reopen the file (which by definition also does ``File.seek(0)``). The
-``mode`` argument allows the same values as Python's standard ``open()``.
-
-When reopening a file, ``mode`` will override whatever mode the file was
-originally opened with; ``None`` means to reopen with the original mode.
-
-``File.read(num_bytes=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Read content from the file. The optional ``size`` is the number of bytes to
-read; if not specified, the file will be read to the end.
-
-``File.__iter__()``
-~~~~~~~~~~~~~~~~~~~
-
-Iterate over the file yielding one line at a time.
-
-``File.chunks(chunk_size=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Iterate over the file yielding "chunks" of a given size. ``chunk_size`` defaults
-to 64 KB.
-
-This is especially useful with very large files since it allows them to be
-streamed off disk and avoids storing the whole file in memory.
-
-``File.multiple_chunks(chunk_size=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Returns ``True`` if the file is large enough to require multiple chunks to
-access all of its content give some ``chunk_size``.
-
-``File.write(content)``
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Writes the specified content string to the file. Depending on the storage system
-behind the scenes, this content might not be fully committed until ``close()``
-is called on the file.
-
-``File.close()``
-~~~~~~~~~~~~~~~~
-
-Close the file.
-
-.. TODO: document the rest of the File methods.
-
-Additional ``ImageField`` attributes
-------------------------------------
-
-``File.width`` and ``File.height``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-These attributes provide the dimensions of the image.
-
-Additional methods on files attached to objects
------------------------------------------------
-
-Any ``File`` that's associated with an object (as with ``Car.photo``, above)
-will also have a couple of extra methods:
-
-``File.save(name, content, save=True)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Saves a new file with the file name and contents provided. This will not replace
-the existing file, but will create a new file and update the object to point to
-it. If ``save`` is ``True``, the model's ``save()`` method will be called once
-the file is saved. That is, these two lines::
-
-    >>> car.photo.save('myphoto.jpg', contents, save=False)
-    >>> car.save()
-
-are the same as this one line::
-
-    >>> car.photo.save('myphoto.jpg', contents, save=True)
-
-``File.delete(save=True)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Remove the file from the model instance and delete the underlying file. The
-``save`` argument works as above.
-
-File storage
-============
-
-Behind the scenes, Django delegates decisions about how and where to store files
-to a file storage system. This is the object that actually understands things
-like file systems, opening and reading files, etc.
-
-Django's default file storage is given by the `DEFAULT_FILE_STORAGE setting`_;
-if you don't explicitly provide a storage system, this is the one that will be
-used.
-
-.. _default_file_storage setting: ../settings/#default-file-storage
-
-The built-in filesystem storage class
--------------------------------------
-
-Django ships with a built-in ``FileSystemStorage`` class (defined in
-``django.core.files.storage``) which implements basic local filesystem file
-storage. Its initializer takes two arguments:
-
-======================  ===================================================
-Argument                Description
-======================  ===================================================
-``location``            Optional. Absolute path to the directory that will
-                        hold the files. If omitted, it will be set to the
-                        value of your ``MEDIA_ROOT`` setting.
-``base_url``            Optional. URL that serves the files stored at this
-                        location. If omitted, it will default to the value
-                        of your ``MEDIA_URL`` setting.
-======================  ===================================================
-
-For example, the following code will store uploaded files under
-``/media/photos`` regardless of what your ``MEDIA_ROOT`` setting is::
-
-    from django.db import models
-    from django.core.files.storage import FileSystemStorage
-
-    fs = FileSystemStorage(location='/media/photos')
-
-    class Car(models.Model):
-        ...
-        photo = models.ImageField(storage=fs)
-
-`Custom storage systems`_ work the same way: you can pass them in as the
-``storage`` argument to a ``FileField``.
-
-.. _custom storage systems: `writing a custom storage system`_
-
-Storage objects
----------------
-
-Though most of the time you'll want to use a ``File`` object (which delegates to
-the proper storage for that file), you can use file storage systems directly.
-You can create an instance of some custom file storage class, or -- often more
-useful -- you can use the global default storage system::
-
-    >>> from django.core.files.storage import default_storage
-
-    >>> path = default_storage.save('/path/to/file', 'new content')
-    >>> path
-    u'/path/to/file'
-
-    >>> default_storage.filesize(path)
-    11
-    >>> default_storage.open(path).read()
-    'new content'
-
-    >>> default_storage.delete(path)
-    >>> default_storage.exists(path)
-    False
-
-Storage objects define the following methods:
-
-``Storage.exists(name)``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-``True`` if a file exists given some ``name``.
-
-``Storage.path(name)``
-~~~~~~~~~~~~~~~~~~~~~~
-
-The local filesystem path where the file can be opened using Python's standard
-``open()``. For storage systems that aren't accessible from the local
-filesystem, this will raise ``NotImplementedError`` instead.
-
-``Storage.size(name)``
-~~~~~~~~~~~~~~~~~~~~~~
-
-Returns the total size, in bytes, of the file referenced by ``name``.
-
-``Storage.url(name)``
-~~~~~~~~~~~~~~~~~~~~~
-
-Returns the URL where the contents of the file referenced by ``name`` can be
-accessed.
-
-``Storage.open(name, mode='rb')``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Opens the file given by ``name``. Note that although the returned file is
-guaranteed to be a ``File`` object, it might actually be some subclass. In the
-case of remote file storage this means that reading/writing could be quite slow,
-so be warned.
-
-``Storage.save(name, content)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Saves a new file using the storage system, preferably with the name specified.
-If there already exists a file with this name ``name``, the storage system may
-modify the filename as necessary to get a unique name. The actual name of the
-stored file will be returned.
-
-``Storage.delete(name)``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Deletes the file referenced by ``name``. This method won't raise an exception if
-the file doesn't exist.
-
-Writing a custom storage system
-===============================
-
-If you need to provide custom file storage -- a common example is storing files
-on some remote system -- you can do so by defining a custom storage class.
-You'll need to follow these steps:
-
-#. Your custom storage system must be a subclass of
-   ``django.core.files.storage.Storage``::
-
-        from django.core.files.storage import Storage
-
-        class MyStorage(Storage):
-            ...
-
-#. Django must be able to instantiate your storage system without any arguments.
-   This means that any settings should be taken from ``django.conf.settings``::
-
-        from django.conf import settings
-        from django.core.files.storage import Storage
-
-        class MyStorage(Storage):
-            def __init__(self, option=None):
-                if not option:
-                    option = settings.CUSTOM_STORAGE_OPTIONS
-                ...
-
-#. Your storage class must implement the ``_open()`` and ``_save()`` methods,
-   along with any other methods appropriate to your storage class. See below for
-   more on these methods.
-
-   In addition, if your class provides local file storage, it must override
-   the ``path()`` method.
-
-Custom storage system methods
------------------------------
-
-Your custom storage system may override any of the storage methods explained
-above in `storage objects`_. However, it's usually better to use the hooks
-specifically designed for custom storage objects. These are:
-
-``_open(name, mode='rb')``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Required**.
-
-Called by ``Storage.open()``, this is the actual mechanism the storage class
-uses to open the file. This must return a ``File`` object, though in most cases,
-you'll want to return some subclass here that implements logic specific to the
-backend storage system.
-
-``_save(name, content)``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-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. No return value is expected.
-
-``get_valid_name(name)``
-------------------------
-
-Returns a filename suitable for use with the underlying storage system. The
-``name`` argument passed to this method is the original filename sent to the
-server, after having any path information removed. Override this to customize
-how non-standard characters are converted to safe filenames.
-
-The code provided on ``Storage`` retains only alpha-numeric characters, periods
-and underscores from the original filename, removing everything else.
-
-``get_available_name(name)``
-----------------------------
-
-Returns a filename that is available in the storage mechanism, possibly taking
-the provided filename into account. The ``name`` argument passed to this method
-will have already cleaned to a filename valid for the storage system, according
-to the ``get_valid_name()`` method described above.
-
-The code provided on ``Storage`` simply appends underscores to the filename
-until it finds one that's available in the destination directory.
diff --git a/docs/form_preview.txt b/docs/form_preview.txt
deleted file mode 100644
index 171174704c..0000000000
--- a/docs/form_preview.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-============
-Form preview
-============
-
-Django comes with an optional "form preview" application that helps automate
-the following workflow:
-
-"Display an HTML form, force a preview, then do something with the submission."
-
-To force a preview of a form submission, all you have to do is write a short
-Python class.
-
-Overview
-=========
-
-Given a ``django.forms.Form`` subclass that you define, this application
-takes care of the following workflow:
-
-    1. Displays the form as HTML on a Web page.
-    2. Validates the form data when it's submitted via POST.
-       a. If it's valid, displays a preview page.
-       b. If it's not valid, redisplays the form with error messages.
-    3. When the "confirmation" form is submitted from the preview page, calls
-       a hook that you define -- a ``done()`` method that gets passed the valid
-       data.
-
-The framework enforces the required preview by passing a shared-secret hash to
-the preview page via hidden form fields. If somebody tweaks the form parameters
-on the preview page, the form submission will fail the hash-comparison test.
-
-How to use ``FormPreview``
-==========================
-
-    1. Point Django at the default FormPreview templates. There are two ways to
-       do this:
-
-       * Add ``'django.contrib.formtools'`` to your ``INSTALLED_APPS``
-         setting. This will work if your ``TEMPLATE_LOADERS`` setting includes
-         the ``app_directories`` template loader (which is the case by
-         default). See the `template loader docs`_ for more.
-
-       * Otherwise, determine the full filesystem path to the
-         ``django/contrib/formtools/templates`` directory, and add that
-         directory to your ``TEMPLATE_DIRS`` setting.
-
-    2. Create a ``FormPreview`` subclass that overrides the ``done()`` method::
-
-           from django.contrib.formtools.preview import FormPreview
-           from myapp.models import SomeModel
-
-           class SomeModelFormPreview(FormPreview):
-
-               def done(self, request, cleaned_data):
-                   # Do something with the cleaned_data, then redirect
-                   # to a "success" page.
-                   return HttpResponseRedirect('/form/success')
-
-       This method takes an ``HttpRequest`` object and a dictionary of the form
-       data after it has been validated and cleaned. It should return an
-       ``HttpResponseRedirect`` that is the end result of the form being
-       submitted.
-
-    3. Change your URLconf to point to an instance of your ``FormPreview``
-       subclass::
-
-           from myapp.preview import SomeModelFormPreview
-           from myapp.models import SomeModel
-           from django import forms
-
-       ...and add the following line to the appropriate model in your URLconf::
-
-           (r'^post/$', SomeModelFormPreview(SomeModelForm)),
-
-       where ``SomeModelForm`` is a Form or ModelForm class for the model.
-
-    4. Run the Django server and visit ``/post/`` in your browser.
-
-.. _template loader docs: ../templates_python/#loader-types
-
-``FormPreview`` classes
-=======================
-
-A ``FormPreview`` class is a simple Python class that represents the preview
-workflow.  ``FormPreview`` classes must subclass
-``django.contrib.formtools.preview.FormPreview`` and override the ``done()``
-method. They can live anywhere in your codebase.
-
-``FormPreview`` templates
-=========================
-
-By default, the form is rendered via the template ``formtools/form.html``, and
-the preview page is rendered via the template ``formtools.preview.html``.
-These values can be overridden for a particular form preview by setting
-``preview_template`` and ``form_template`` attributes on the FormPreview
-subclass. See ``django/contrib/formtools/templates`` for the default templates.
diff --git a/docs/form_wizard.txt b/docs/form_wizard.txt
deleted file mode 100644
index 661127e5b0..0000000000
--- a/docs/form_wizard.txt
+++ /dev/null
@@ -1,304 +0,0 @@
-===========
-Form wizard
-===========
-
-**New in Django development version.**
-
-Django comes with an optional "form wizard" application that splits forms_
-across multiple Web pages. It maintains state in hashed HTML
-``<input type="hidden">`` fields, and the data isn't processed server-side
-until the final form is submitted.
-
-You might want to use this if you have a lengthy form that would be too
-unwieldy for display on a single page. The first page might ask the user for
-core information, the second page might ask for less important information,
-etc.
-
-The term "wizard," in this context, is `explained on Wikipedia`_.
-
-.. _explained on Wikipedia: http://en.wikipedia.org/wiki/Wizard_%28software%29
-.. _forms: ../forms/
-
-How it works
-============
-
-Here's the basic workflow for how a user would use a wizard:
-
-    1. The user visits the first page of the wizard, fills in the form and
-       submits it.
-    2. The server validates the data. If it's invalid, the form is displayed
-       again, with error messages. If it's valid, the server calculates a
-       secure hash of the data and presents the user with the next form,
-       saving the validated data and hash in ``<input type="hidden">`` fields.
-    3. Step 1 and 2 repeat, for every subsequent form in the wizard.
-    4. Once the user has submitted all the forms and all the data has been
-       validated, the wizard processes the data -- saving it to the database,
-       sending an e-mail, or whatever the application needs to do.
-
-Usage
-=====
-
-This application handles as much machinery for you as possible. Generally, you
-just have to do these things:
-
-    1. Define a number of ``django.forms`` ``Form`` classes -- one per wizard
-       page.
-    2. Create a ``FormWizard`` class that specifies what to do once all of your
-       forms have been submitted and validated. This also lets you override some
-       of the wizard's behavior.
-    3. Create some templates that render the forms. You can define a single,
-       generic template to handle every one of the forms, or you can define a
-       specific template for each form.
-    4. Point your URLconf at your ``FormWizard`` class.
-
-Defining ``Form`` classes
-=========================
-
-The first step in creating a form wizard is to create the ``Form`` classes.
-These should be standard ``django.forms`` ``Form`` classes, covered in the
-`forms documentation`_.
-
-These classes can live anywhere in your codebase, but convention is to put them
-in a file called ``forms.py`` in your application.
-
-For example, let's write a "contact form" wizard, where the first page's form
-collects the sender's e-mail address and subject, and the second page collects
-the message itself. Here's what the ``forms.py`` might look like::
-
-    from django import forms
-
-    class ContactForm1(forms.Form):
-        subject = forms.CharField(max_length=100)
-        sender = forms.EmailField()
-
-    class ContactForm2(forms.Form):
-        message = forms.CharField(widget=forms.Textarea)
-
-**Important limitation:** Because the wizard uses HTML hidden fields to store
-data between pages, you may not include a ``FileField`` in any form except the
-last one.
-
-.. _forms documentation: ../forms/
-
-Creating a ``FormWizard`` class
-===============================
-
-The next step is to create a ``FormWizard`` class, which should be a subclass
-of ``django.contrib.formtools.wizard.FormWizard``.
-
-As your ``Form`` classes, this ``FormWizard`` class can live anywhere in your
-codebase, but convention is to put it in ``forms.py``.
-
-The only requirement on this subclass is that it implement a ``done()`` method,
-which specifies what should happen when the data for *every* form is submitted
-and validated. This method is passed two arguments:
-
-    * ``request`` -- an HttpRequest_ object
-    * ``form_list`` -- a list of ``django.forms`` ``Form`` classes
-
-In this simplistic example, rather than perform any database operation, the
-method simply renders a template of the validated data::
-
-    from django.shortcuts import render_to_response
-    from django.contrib.formtools.wizard import FormWizard
-
-    class ContactWizard(FormWizard):
-        def done(self, request, form_list):
-            return render_to_response('done.html', {
-                'form_data': [form.cleaned_data for form in form_list],
-            })
-
-Note that this method will be called via ``POST``, so it really ought to be a
-good Web citizen and redirect after processing the data. Here's another
-example::
-
-    from django.http import HttpResponseRedirect
-    from django.contrib.formtools.wizard import FormWizard
-
-    class ContactWizard(FormWizard):
-        def done(self, request, form_list):
-            do_something_with_the_form_data(form_list)
-            return HttpResponseRedirect('/page-to-redirect-to-when-done/')
-
-See the section "Advanced ``FormWizard`` methods" below to learn about more
-``FormWizard`` hooks.
-
-.. _HttpRequest: request_response/#httprequest-objects
-
-Creating templates for the forms
-================================
-
-Next, you'll need to create a template that renders the wizard's forms. By
-default, every form uses a template called ``forms/wizard.html``. (You can
-change this template name by overriding ``FormWizard.get_template()``, which is
-documented below. This hook also allows you to use a different template for
-each form.)
-
-This template expects the following context:
-
-    * ``step_field`` -- The name of the hidden field containing the step.
-    * ``step0`` -- The current step (zero-based).
-    * ``step`` -- The current step (one-based).
-    * ``step_count`` -- The total number of steps.
-    * ``form`` -- The ``Form`` instance for the current step (either empty or
-      with errors).
-    * ``previous_fields`` -- A string representing every previous data field,
-      plus hashes for completed forms, all in the form of hidden fields. Note
-      that you'll need to run this through the ``safe`` template filter, to
-      prevent auto-escaping, because it's raw HTML.
-
-It will also be passed any objects in ``extra_context``, which is a dictionary
-you can specify that contains extra values to add to the context. You can
-specify it in two ways:
-
-    * Set the ``extra_context`` attribute on your ``FormWizard`` subclass to a
-      dictionary.
-
-    * Pass ``extra_context`` as extra parameters in the URLconf.
-
-Here's a full example template::
-
-    {% extends "base.html" %}
-
-    {% block content %}
-    <p>Step {{ step }} of {{ step_count }}</p>
-    <form action="." method="post">
-    <table>
-    {{ form }}
-    </table>
-    <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
-    {{ previous_fields|safe }}
-    <input type="submit">
-    </form>
-    {% endblock %}
-
-Note that ``previous_fields``, ``step_field`` and ``step0`` are all required
-for the wizard to work properly.
-
-Hooking the wizard into a URLconf
-=================================
-
-Finally, give your new ``FormWizard`` object a URL in ``urls.py``. The wizard
-takes a list of your form objects as arguments::
-
-    from django.conf.urls.defaults import *
-    from mysite.testapp.forms import ContactForm1, ContactForm2, ContactWizard
-
-    urlpatterns = patterns('',
-        (r'^contact/$', ContactWizard([ContactForm1, ContactForm2])),
-    )
-
-Advanced ``FormWizard`` methods
-===============================
-
-Aside from the ``done()`` method, ``FormWizard`` offers a few advanced method
-hooks that let you customize how your wizard works.
-
-Some of these methods take an argument ``step``, which is a zero-based counter
-representing the current step of the wizard. (E.g., the first form is ``0`` and
-the second form is ``1``.)
-
-``prefix_for_step``
-~~~~~~~~~~~~~~~~~~~
-
-Given the step, returns a ``Form`` prefix to use. By default, this simply uses
-the step itself. For more, see the `form prefix documentation`_.
-
-Default implementation::
-
-    def prefix_for_step(self, step):
-        return str(step)
-
-.. _form prefix documentation: ../forms/#prefixes-for-forms
-
-``render_hash_failure``
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Renders a template if the hash check fails. It's rare that you'd need to
-override this.
-
-Default implementation::
-
-    def render_hash_failure(self, request, step):
-        return self.render(self.get_form(step), request, step,
-            context={'wizard_error': 'We apologize, but your form has expired. Please continue filling out the form from this page.'})
-
-``security_hash``
-~~~~~~~~~~~~~~~~~
-
-Calculates the security hash for the given request object and ``Form`` instance.
-
-By default, this uses an MD5 hash of the form data and your
-`SECRET_KEY setting`_. It's rare that somebody would need to override this.
-
-Example::
-
-    def security_hash(self, request, form):
-        return my_hash_function(request, form)
-
-.. _SECRET_KEY setting: ../settings/#secret-key
-
-``parse_params``
-~~~~~~~~~~~~~~~~
-
-A hook for saving state from the request object and ``args`` / ``kwargs`` that
-were captured from the URL by your URLconf.
-
-By default, this does nothing.
-
-Example::
-
-    def parse_params(self, request, *args, **kwargs):
-        self.my_state = args[0]
-
-``get_template``
-~~~~~~~~~~~~~~~~
-
-Returns the name of the template that should be used for the given step.
-
-By default, this returns ``'forms/wizard.html'``, regardless of step.
-
-Example::
-
-    def get_template(self, step):
-        return 'myapp/wizard_%s.html' % step
-
-If ``get_template`` returns a list of strings, then the wizard will use the
-template system's ``select_template()`` function, `explained in the template docs`_.
-This means the system will use the first template that exists on the filesystem.
-For example::
-
-    def get_template(self, step):
-        return ['myapp/wizard_%s.html' % step, 'myapp/wizard.html']
-
-.. _explained in the template docs: ../templates_python/#the-python-api
-
-``render_template``
-~~~~~~~~~~~~~~~~~~~
-
-Renders the template for the given step, returning an ``HttpResponse`` object.
-
-Override this method if you want to add a custom context, return a different
-MIME type, etc. If you only need to override the template name, use
-``get_template()`` instead.
-
-The template will be rendered with the context documented in the
-"Creating templates for the forms" section above.
-
-``process_step``
-~~~~~~~~~~~~~~~~
-
-Hook for modifying the wizard's internal state, given a fully validated ``Form``
-object. The Form is guaranteed to have clean, valid data.
-
-This method should *not* modify any of that data. Rather, it might want to set
-``self.extra_context`` or dynamically alter ``self.form_list``, based on
-previously submitted forms.
-
-Note that this method is called every time a page is rendered for *all*
-submitted steps.
-
-The function signature::
-
-    def process_step(self, request, form, step):
-        # ...
diff --git a/docs/forms.txt b/docs/forms.txt
deleted file mode 100644
index f25d5c57d5..0000000000
--- a/docs/forms.txt
+++ /dev/null
@@ -1,2468 +0,0 @@
-=================
-The forms library
-=================
-
-``django.forms`` is Django's form-handling library.
-
-.. admonition:: Looking for oldforms?
-
-    ``django.forms`` was once called ``newforms`` since it replaced Django's
-    original form/manipulator/validation framework. The old form handling
-    library is still available as `django.oldforms`_, but will be removed
-    in a future version of Django.
-
-.. _django.oldforms: ../oldforms/
-
-Overview
-========
-
-``django.forms`` is intended to handle HTML form display, data processing
-(validation) and redisplay. It's what you use if you want to perform
-server-side validation for an HTML form.
-
-For example, if your Web site has a contact form that visitors can use to
-send you e-mail, you'd use this library to implement the display of the HTML
-form fields, along with the form validation. Any time you need to use an HTML
-``<form>``, you can use this library.
-
-The library deals with these concepts:
-
-    * **Widget** -- A class that corresponds to an HTML form widget, e.g.
-      ``<input type="text">`` or ``<textarea>``. This handles rendering of the
-      widget as HTML.
-
-    * **Field** -- A class that is responsible for doing validation, e.g.
-      an ``EmailField`` that makes sure its data is a valid e-mail address.
-
-    * **Form** -- A collection of fields that knows how to validate itself and
-      display itself as HTML.
-
-    * **Media** -- A definition of the CSS and JavaScript resources that are
-      required to render a form.
-
-The library is decoupled from the other Django components, such as the database
-layer, views and templates. It relies only on Django settings, a couple of
-``django.utils`` helper functions and Django's internationalization hooks (but
-you're not required to be using internationalization features to use this
-library).
-
-Form objects
-============
-
-The primary way of using the ``forms`` library is to create a form object.
-Do this by subclassing ``django.forms.Form`` and specifying the form's
-fields, in a declarative style that you'll be familiar with if you've used
-Django database models. In this section, we'll iteratively develop a form
-object that you might use to implement "contact me" functionality on your
-personal Web site.
-
-Start with this basic ``Form`` subclass, which we'll call ``ContactForm``::
-
-    from django import forms
-
-    class ContactForm(forms.Form):
-        subject = forms.CharField(max_length=100)
-        message = forms.CharField()
-        sender = forms.EmailField()
-        cc_myself = forms.BooleanField(required=False)
-
-A form is composed of ``Field`` objects. In this case, our form has four
-fields: ``subject``, ``message``, ``sender`` and ``cc_myself``. We'll explain
-the different types of fields -- e.g., ``CharField`` and ``EmailField`` --
-shortly.
-
-Creating ``Form`` instances
----------------------------
-
-A ``Form`` instance is either **bound** to a set of data, or **unbound**.
-
-    * If it's **bound** to a set of data, it's capable of validating that data
-      and rendering the form as HTML with the data displayed in the HTML.
-
-    * If it's **unbound**, it cannot do validation (because there's no data to
-      validate!), but it can still render the blank form as HTML.
-
-To create an unbound ``Form`` instance, simply instantiate the class::
-
-    >>> f = ContactForm()
-
-To bind data to a form, pass the data as a dictionary as the first parameter to
-your ``Form`` class constructor::
-
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-
-In this dictionary, the keys are the field names, which correspond to the
-attributes in your ``Form`` class. The values are the data you're trying
-to validate. These will usually be strings, but there's no requirement that
-they be strings; the type of data you pass depends on the ``Field``, as we'll
-see in a moment.
-
-If you need to distinguish between bound and unbound form instances at runtime,
-check the value of the form's ``is_bound`` attribute::
-
-    >>> f = ContactForm()
-    >>> f.is_bound
-    False
-    >>> f = ContactForm({'subject': 'hello'})
-    >>> f.is_bound
-    True
-
-Note that passing an empty dictionary creates a *bound* form with empty data::
-
-    >>> f = ContactForm({})
-    >>> f.is_bound
-    True
-
-If you have a bound ``Form`` instance and want to change the data somehow, or
-if you want to bind an unbound ``Form`` instance to some data, create another
-``Form`` instance. There is no way to change data in a ``Form`` instance. Once
-a ``Form`` instance has been created, you should consider its data immutable,
-whether it has data or not.
-
-Using forms to validate data
-----------------------------
-
-The primary task of a ``Form`` object is to validate data. With a bound
-``Form`` instance, call the ``is_valid()`` method to run validation and return
-a boolean designating whether the data was valid::
-
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-    >>> f.is_valid()
-    True
-
-Let's try with some invalid data. In this case, ``subject`` is blank (an error,
-because all fields are required by default) and ``sender`` is not a valid
-e-mail address::
-
-    >>> data = {'subject': '',
-    ...         'message': 'Hi there',
-    ...         'sender': 'invalid e-mail address',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-    >>> f.is_valid()
-    False
-
-Access the ``errors`` attribute to get a dictionary of error messages::
-
-    >>> f.errors
-    {'sender': [u'Enter a valid e-mail address.'], 'subject': [u'This field is required.']}
-
-In this dictionary, the keys are the field names, and the values are lists of
-Unicode strings representing the error messages. The error messages are stored
-in lists because a field can have multiple error messages.
-
-You can access ``errors`` without having to call ``is_valid()`` first. The
-form's data will be validated the first time either you call ``is_valid()`` or
-access ``errors``.
-
-The validation routines will only get called once, regardless of how many times
-you access ``errors`` or call ``is_valid()``. This means that if validation has
-side effects, those side effects will only be triggered once.
-
-Behavior of unbound forms
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It's meaningless to validate a form with no data, but, for the record, here's
-what happens with unbound forms::
-
-    >>> f = ContactForm()
-    >>> f.is_valid()
-    False
-    >>> f.errors
-    {}
-
-Accessing "clean" data
-----------------------
-
-Each ``Field`` in a ``Form`` class is responsible not only for validating data,
-but also for "cleaning" it -- normalizing it to a consistent format. This is a
-nice feature, because it allows data for a particular field to be input in
-a variety of ways, always resulting in consistent output.
-
-For example, ``DateField`` normalizes input into a Python ``datetime.date``
-object. Regardless of whether you pass it a string in the format
-``'1994-07-15'``, a ``datetime.date`` object or a number of other formats,
-``DateField`` will always normalize it to a ``datetime.date`` object as long as
-it's valid.
-
-Once you've created a ``Form`` instance with a set of data and validated it,
-you can access the clean data via the ``cleaned_data`` attribute of the ``Form``
-object::
-
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-    >>> f.is_valid()
-    True
-    >>> f.cleaned_data
-    {'cc_myself': True, 'message': u'Hi there', 'sender': u'foo@example.com', 'subject': u'hello'}
-
-.. note::
-    **New in Django development version** The ``cleaned_data`` attribute was
-    called ``clean_data`` in earlier releases.
-
-Note that any text-based field -- such as ``CharField`` or ``EmailField`` --
-always cleans the input into a Unicode string. We'll cover the encoding
-implications later in this document.
-
-If your data does *not* validate, your ``Form`` instance will not have a
-``cleaned_data`` attribute::
-
-    >>> data = {'subject': '',
-    ...         'message': 'Hi there',
-    ...         'sender': 'invalid e-mail address',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-    >>> f.is_valid()
-    False
-    >>> f.cleaned_data
-    Traceback (most recent call last):
-    ...
-    AttributeError: 'ContactForm' object has no attribute 'cleaned_data'
-
-``cleaned_data`` will always *only* contain a key for fields defined in the
-``Form``, even if you pass extra data when you define the ``Form``. In this
-example, we pass a bunch of extra fields to the ``ContactForm`` constructor,
-but ``cleaned_data`` contains only the form's fields::
-
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True,
-    ...         'extra_field_1': 'foo',
-    ...         'extra_field_2': 'bar',
-    ...         'extra_field_3': 'baz'}
-    >>> f = ContactForm(data)
-    >>> f.is_valid()
-    True
-    >>> f.cleaned_data # Doesn't contain extra_field_1, etc.
-    {'cc_myself': True, 'message': u'Hi there', 'sender': u'foo@example.com', 'subject': u'hello'}
-
-``cleaned_data`` will include a key and value for *all* fields defined in the
-``Form``, even if the data didn't include a value for fields that are not
-required. In this example, the data dictionary doesn't include a value for the
-``nick_name`` field, but ``cleaned_data`` includes it, with an empty value::
-
-    >>> class OptionalPersonForm(Form):
-    ...     first_name = CharField()
-    ...     last_name = CharField()
-    ...     nick_name = CharField(required=False)
-    >>> data = {'first_name': u'John', 'last_name': u'Lennon'}
-    >>> f = OptionalPersonForm(data)
-    >>> f.is_valid()
-    True
-    >>> f.cleaned_data
-    {'nick_name': u'', 'first_name': u'John', 'last_name': u'Lennon'}
-
-In this above example, the ``cleaned_data`` value for ``nick_name`` is set to an
-empty string, because ``nick_name`` is ``CharField``, and ``CharField``\s treat
-empty values as an empty string. Each field type knows what its "blank" value
-is -- e.g., for ``DateField``, it's ``None`` instead of the empty string. For
-full details on each field's behavior in this case, see the "Empty value" note
-for each field in the "Built-in ``Field`` classes" section below.
-
-You can write code to perform validation for particular form fields (based on
-their name) or for the form as a whole (considering combinations of various
-fields). More information about this is in the `Custom form and field
-validation`_ section, below.
-
-Behavior of unbound forms
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It's meaningless to request "cleaned" data in a form with no data, but, for the
-record, here's what happens with unbound forms::
-
-    >>> f = ContactForm()
-    >>> f.cleaned_data
-    Traceback (most recent call last):
-    ...
-    AttributeError: 'ContactForm' object has no attribute 'cleaned_data'
-
-Outputting forms as HTML
-------------------------
-
-The second task of a ``Form`` object is to render itself as HTML. To do so,
-simply ``print`` it::
-
-    >>> f = ContactForm()
-    >>> print f
-    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>
-    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>
-    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>
-
-If the form is bound to data, the HTML output will include that data
-appropriately. For example, if a field is represented by an
-``<input type="text">``, the data will be in the ``value`` attribute. If a
-field is represented by an ``<input type="checkbox">``, then that HTML will
-include ``checked="checked"`` if appropriate::
-
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data)
-    >>> print f
-    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" value="hello" /></td></tr>
-    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" value="Hi there" /></td></tr>
-    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" value="foo@example.com" /></td></tr>
-    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" checked="checked" /></td></tr>
-
-This default output is a two-column HTML table, with a ``<tr>`` for each field.
-Notice the following:
-
-    * For flexibility, the output does *not* include the ``<table>`` and
-      ``</table>`` tags, nor does it include the ``<form>`` and ``</form>``
-      tags or an ``<input type="submit">`` tag. It's your job to do that.
-
-    * Each field type has a default HTML representation. ``CharField`` and
-      ``EmailField`` are represented by an ``<input type="text">``.
-      ``BooleanField`` is represented by an ``<input type="checkbox">``. Note
-      these are merely sensible defaults; you can specify which HTML to use for
-      a given field by using widgets, which we'll explain shortly.
-
-    * The HTML ``name`` for each tag is taken directly from its attribute name
-      in the ``ContactForm`` class.
-
-    * The text label for each field -- e.g. ``'Subject:'``, ``'Message:'`` and
-      ``'Cc myself:'`` is generated from the field name by converting all
-      underscores to spaces and upper-casing the first letter. Again, note
-      these are merely sensible defaults; you can also specify labels manually.
-
-    * Each text label is surrounded in an HTML ``<label>`` tag, which points
-      to the appropriate form field via its ``id``. Its ``id``, in turn, is
-      generated by prepending ``'id_'`` to the field name. The ``id``
-      attributes and ``<label>`` tags are included in the output by default, to
-      follow best practices, but you can change that behavior.
-
-Although ``<table>`` output is the default output style when you ``print`` a
-form, other output styles are available. Each style is available as a method on
-a form object, and each rendering method returns a Unicode object.
-
-``as_p()``
-~~~~~~~~~~
-
-``Form.as_p()`` renders the form as a series of ``<p>`` tags, with each ``<p>``
-containing one field::
-
-    >>> f = ContactForm()
-    >>> f.as_p()
-    u'<p><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></p>\n<p><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></p>\n<p><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></p>\n<p><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>'
-    >>> print f.as_p()
-    <p><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></p>
-    <p><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></p>
-    <p><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></p>
-    <p><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>
-
-``as_ul()``
-~~~~~~~~~~~
-
-``Form.as_ul()`` renders the form as a series of ``<li>`` tags, with each
-``<li>`` containing one field. It does *not* include the ``<ul>`` or ``</ul>``,
-so that you can specify any HTML attributes on the ``<ul>`` for flexibility::
-
-    >>> f = ContactForm()
-    >>> f.as_ul()
-    u'<li><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></li>\n<li><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></li>\n<li><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></li>\n<li><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></li>'
-    >>> print f.as_ul()
-    <li><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></li>
-    <li><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></li>
-    <li><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></li>
-    <li><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></li>
-
-``as_table()``
-~~~~~~~~~~~~~~
-
-Finally, ``Form.as_table()`` outputs the form as an HTML ``<table>``. This is
-exactly the same as ``print``. In fact, when you ``print`` a form object, it
-calls its ``as_table()`` method behind the scenes::
-
-    >>> f = ContactForm()
-    >>> f.as_table()
-    u'<tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>\n<tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>\n<tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>\n<tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>'
-    >>> print f.as_table()
-    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>
-    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>
-    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>
-
-Configuring HTML ``<label>`` tags
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-An HTML ``<label>`` tag designates which label text is associated with which
-form element. This small enhancement makes forms more usable and more accessible
-to assistive devices. It's always a good idea to use ``<label>`` tags.
-
-By default, the form rendering methods include HTML ``id`` attributes on the
-form elements and corresponding ``<label>`` tags around the labels. The ``id``
-attribute values are generated by prepending ``id_`` to the form field names.
-This behavior is configurable, though, if you want to change the ``id``
-convention or remove HTML ``id`` attributes and ``<label>`` tags entirely.
-
-Use the ``auto_id`` argument to the ``Form`` constructor to control the label
-and ``id`` behavior. This argument must be ``True``, ``False`` or a string.
-
-If ``auto_id`` is ``False``, then the form output will not include ``<label>``
-tags nor ``id`` attributes::
-
-    >>> f = ContactForm(auto_id=False)
-    >>> print f.as_table()
-    <tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th>Message:</th><td><input type="text" name="message" /></td></tr>
-    <tr><th>Sender:</th><td><input type="text" name="sender" /></td></tr>
-    <tr><th>Cc myself:</th><td><input type="checkbox" name="cc_myself" /></td></tr>
-    >>> print f.as_ul()
-    <li>Subject: <input type="text" name="subject" maxlength="100" /></li>
-    <li>Message: <input type="text" name="message" /></li>
-    <li>Sender: <input type="text" name="sender" /></li>
-    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
-    >>> print f.as_p()
-    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
-    <p>Message: <input type="text" name="message" /></p>
-    <p>Sender: <input type="text" name="sender" /></p>
-    <p>Cc myself: <input type="checkbox" name="cc_myself" /></p>
-
-If ``auto_id`` is set to ``True``, then the form output *will* include
-``<label>`` tags and will simply use the field name as its ``id`` for each form
-field::
-
-    >>> f = ContactForm(auto_id=True)
-    >>> print f.as_table()
-    <tr><th><label for="subject">Subject:</label></th><td><input id="subject" type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th><label for="message">Message:</label></th><td><input type="text" name="message" id="message" /></td></tr>
-    <tr><th><label for="sender">Sender:</label></th><td><input type="text" name="sender" id="sender" /></td></tr>
-    <tr><th><label for="cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="cc_myself" /></td></tr>
-    >>> print f.as_ul()
-    <li><label for="subject">Subject:</label> <input id="subject" type="text" name="subject" maxlength="100" /></li>
-    <li><label for="message">Message:</label> <input type="text" name="message" id="message" /></li>
-    <li><label for="sender">Sender:</label> <input type="text" name="sender" id="sender" /></li>
-    <li><label for="cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="cc_myself" /></li>
-    >>> print f.as_p()
-    <p><label for="subject">Subject:</label> <input id="subject" type="text" name="subject" maxlength="100" /></p>
-    <p><label for="message">Message:</label> <input type="text" name="message" id="message" /></p>
-    <p><label for="sender">Sender:</label> <input type="text" name="sender" id="sender" /></p>
-    <p><label for="cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="cc_myself" /></p>
-
-If ``auto_id`` is set to a string containing the format character ``'%s'``,
-then the form output will include ``<label>`` tags, and will generate ``id``
-attributes based on the format string. For example, for a format string
-``'field_%s'``, a field named ``subject`` will get the ``id`` value
-``'field_subject'``. Continuing our example::
-
-    >>> f = ContactForm(auto_id='id_for_%s')
-    >>> print f.as_table()
-    <tr><th><label for="id_for_subject">Subject:</label></th><td><input id="id_for_subject" type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th><label for="id_for_message">Message:</label></th><td><input type="text" name="message" id="id_for_message" /></td></tr>
-    <tr><th><label for="id_for_sender">Sender:</label></th><td><input type="text" name="sender" id="id_for_sender" /></td></tr>
-    <tr><th><label for="id_for_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></td></tr>
-    >>> print f.as_ul()
-    <li><label for="id_for_subject">Subject:</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
-    <li><label for="id_for_message">Message:</label> <input type="text" name="message" id="id_for_message" /></li>
-    <li><label for="id_for_sender">Sender:</label> <input type="text" name="sender" id="id_for_sender" /></li>
-    <li><label for="id_for_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
-    >>> print f.as_p()
-    <p><label for="id_for_subject">Subject:</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></p>
-    <p><label for="id_for_message">Message:</label> <input type="text" name="message" id="id_for_message" /></p>
-    <p><label for="id_for_sender">Sender:</label> <input type="text" name="sender" id="id_for_sender" /></p>
-    <p><label for="id_for_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></p>
-
-If ``auto_id`` is set to any other true value -- such as a string that doesn't
-include ``%s`` -- then the library will act as if ``auto_id`` is ``True``.
-
-By default, ``auto_id`` is set to the string ``'id_%s'``.
-
-Normally, a colon (``:``) will be appended after any label name when a form is
-rendered. It's possible to change the colon to another character, or omit it
-entirely, using the ``label_suffix`` parameter::
-
-    >>> f = ContactForm(auto_id='id_for_%s', label_suffix='')
-    >>> print f.as_ul()
-    <li><label for="id_for_subject">Subject</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
-    <li><label for="id_for_message">Message</label> <input type="text" name="message" id="id_for_message" /></li>
-    <li><label for="id_for_sender">Sender</label> <input type="text" name="sender" id="id_for_sender" /></li>
-    <li><label for="id_for_cc_myself">Cc myself</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
-    >>> f = ContactForm(auto_id='id_for_%s', label_suffix=' ->')
-    >>> print f.as_ul()
-    <li><label for="id_for_subject">Subject -></label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
-    <li><label for="id_for_message">Message -></label> <input type="text" name="message" id="id_for_message" /></li>
-    <li><label for="id_for_sender">Sender -></label> <input type="text" name="sender" id="id_for_sender" /></li>
-    <li><label for="id_for_cc_myself">Cc myself -></label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
-
-Note that the label suffix is added only if the last character of the
-label isn't a punctuation character (``.``, ``!``, ``?`` or ``:``)
-
-Notes on field ordering
-~~~~~~~~~~~~~~~~~~~~~~~
-
-In the ``as_p()``, ``as_ul()`` and ``as_table()`` shortcuts, the fields are
-displayed in the order in which you define them in your form class. For
-example, in the ``ContactForm`` example, the fields are defined in the order
-``subject``, ``message``, ``sender``, ``cc_myself``. To reorder the HTML
-output, just change the order in which those fields are listed in the class.
-
-How errors are displayed
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you render a bound ``Form`` object, the act of rendering will automatically
-run the form's validation if it hasn't already happened, and the HTML output
-will include the validation errors as a ``<ul class="errorlist">`` near the
-field. The particular positioning of the error messages depends on the output
-method you're using::
-
-    >>> data = {'subject': '',
-    ...         'message': 'Hi there',
-    ...         'sender': 'invalid e-mail address',
-    ...         'cc_myself': True}
-    >>> f = ContactForm(data, auto_id=False)
-    >>> print f.as_table()
-    <tr><th>Subject:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="subject" maxlength="100" /></td></tr>
-    <tr><th>Message:</th><td><input type="text" name="message" value="Hi there" /></td></tr>
-    <tr><th>Sender:</th><td><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul><input type="text" name="sender" value="invalid e-mail address" /></td></tr>
-    <tr><th>Cc myself:</th><td><input checked="checked" type="checkbox" name="cc_myself" /></td></tr>
-    >>> print f.as_ul()
-    <li><ul class="errorlist"><li>This field is required.</li></ul>Subject: <input type="text" name="subject" maxlength="100" /></li>
-    <li>Message: <input type="text" name="message" value="Hi there" /></li>
-    <li><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul>Sender: <input type="text" name="sender" value="invalid e-mail address" /></li>
-    <li>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></li>
-    >>> print f.as_p()
-    <p><ul class="errorlist"><li>This field is required.</li></ul></p>
-    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
-    <p>Message: <input type="text" name="message" value="Hi there" /></p>
-    <p><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul></p>
-    <p>Sender: <input type="text" name="sender" value="invalid e-mail address" /></p>
-    <p>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></p>
-
-Customizing the error list format
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-By default, forms use ``django.forms.util.ErrorList`` to format validation
-errors. If you'd like to use an alternate class for displaying errors, you can
-pass that in at construction time::
-
-    >>> from django.forms.util import ErrorList
-    >>> class DivErrorList(ErrorList):
-    ...     def __unicode__(self):
-    ...         return self.as_divs()
-    ...     def as_divs(self):
-    ...         if not self: return u''
-    ...         return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self])
-    >>> f = ContactForm(data, auto_id=False, error_class=DivErrorList)
-    >>> f.as_p()
-    <div class="errorlist"><div class="error">This field is required.</div></div>
-    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
-    <p>Message: <input type="text" name="message" value="Hi there" /></p>
-    <div class="errorlist"><div class="error">Enter a valid e-mail address.</div></div>
-    <p>Sender: <input type="text" name="sender" value="invalid e-mail address" /></p>
-    <p>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></p>
-
-More granular output
-~~~~~~~~~~~~~~~~~~~~
-
-The ``as_p()``, ``as_ul()`` and ``as_table()`` methods are simply shortcuts for
-lazy developers -- they're not the only way a form object can be displayed.
-
-To display the HTML for a single field in your form, use dictionary lookup
-syntax using the field's name as the key, and print the resulting object::
-
-    >>> f = ContactForm()
-    >>> print f['subject']
-    <input id="id_subject" type="text" name="subject" maxlength="100" />
-    >>> print f['message']
-    <input type="text" name="message" id="id_message" />
-    >>> print f['sender']
-    <input type="text" name="sender" id="id_sender" />
-    >>> print f['cc_myself']
-    <input type="checkbox" name="cc_myself" id="id_cc_myself" />
-
-Call ``str()`` or ``unicode()`` on the field to get its rendered HTML as a
-string or Unicode object, respectively::
-
-    >>> str(f['subject'])
-    '<input id="id_subject" type="text" name="subject" maxlength="100" />'
-    >>> unicode(f['subject'])
-    u'<input id="id_subject" type="text" name="subject" maxlength="100" />'
-
-The field-specific output honors the form object's ``auto_id`` setting::
-
-    >>> f = ContactForm(auto_id=False)
-    >>> print f['message']
-    <input type="text" name="message" />
-    >>> f = ContactForm(auto_id='id_%s')
-    >>> print f['message']
-    <input type="text" name="message" id="id_message" />
-
-For a field's list of errors, access the field's ``errors`` attribute. This
-is a list-like object that is displayed as an HTML ``<ul class="errorlist">``
-when printed::
-
-    >>> data = {'subject': 'hi', 'message': '', 'sender': '', 'cc_myself': ''}
-    >>> f = ContactForm(data, auto_id=False)
-    >>> print f['message']
-    <input type="text" name="message" />
-    >>> f['message'].errors
-    [u'This field is required.']
-    >>> print f['message'].errors
-    <ul class="errorlist"><li>This field is required.</li></ul>
-    >>> f['subject'].errors
-    []
-    >>> print f['subject'].errors
-
-    >>> str(f['subject'].errors)
-    ''
-
-Using forms in views and templates
-----------------------------------
-
-Let's put this all together and use the ``ContactForm`` example in a Django
-view and template.
-
-Simple view example
-~~~~~~~~~~~~~~~~~~~
-
-This example view displays the contact form by default and validates/processes
-it if accessed via a POST request::
-
-    def contact(request):
-        if request.method == 'POST':
-            form = ContactForm(request.POST)
-            if form.is_valid():
-                # Do form processing here...
-                return HttpResponseRedirect('/url/on_success/')
-        else:
-            form = ContactForm()
-        return render_to_response('contact.html', {'form': form})
-
-Simple template example
-~~~~~~~~~~~~~~~~~~~~~~~
-
-The template in the above view example, ``contact.html``, is responsible for
-displaying the form as HTML. To do this, we can use the techniques outlined in
-the "Outputting forms as HTML" section above.
-
-The simplest way to display a form's HTML is to use the variable on its own,
-like this::
-
-    <form method="post" action="">
-    <table>{{ form }}</table>
-    <input type="submit" />
-    </form>
-
-The above template code will display the form as an HTML table, using the
-``form.as_table()`` method explained previously. This works because Django's
-template system displays an object's ``__str__()`` value, and the ``Form``
-class' ``__str__()`` method calls its ``as_table()`` method.
-
-The following is equivalent but a bit more explicit::
-
-    <form method="post" action="">
-    <table>{{ form.as_table }}</table>
-    <input type="submit" />
-    </form>
-
-``form.as_ul`` and ``form.as_p`` are also available, as you may expect.
-
-Note that in the above two examples, we included the ``<form>``, ``<table>``
-``<input type="submit" />``, ``</table>`` and ``</form>`` tags. The form
-convenience methods (``as_table()``, ``as_ul()`` and ``as_p()``) do not include
-that HTML.
-
-Complex template output
-~~~~~~~~~~~~~~~~~~~~~~~
-
-As we've stressed several times, the ``as_table()``, ``as_ul()`` and ``as_p()``
-methods are just shortcuts for the common case. You can also work with the
-individual fields for complete template control over the form's design.
-
-The easiest way is to iterate over the form's fields, with
-``{% for field in form %}``. For example::
-
-    <form method="post" action="">
-    <dl>
-    {% for field in form %}
-        <dt>{{ field.label_tag }}</dt>
-        <dd>{{ field }}</dd>
-        {% if field.help_text %}<dd>{{ field.help_text }}</dd>{% endif %}
-        {% if field.errors %}<dd class="myerrors">{{ field.errors }}</dd>{% endif %}
-    {% endfor %}
-    </dl>
-    <input type="submit" />
-    </form>
-
-This iteration technique is useful if you want to apply the same HTML
-formatting to each field, or if you don't know the names of the form fields
-ahead of time. Note that the fields will be iterated over in the order in which
-they're defined in the ``Form`` class.
-
-Alternatively, you can arrange the form's fields explicitly, by name. Do that
-by accessing ``{{ form.fieldname }}``, where ``fieldname`` is the field's name.
-For example::
-
-    <form method="post" action="">
-    <ul class="myformclass">
-        <li>{{ form.sender.label_tag }} {{ form.sender }}</li>
-        <li class="helptext">{{ form.sender.help_text }}</li>
-        {% if form.sender.errors %}<ul class="errorlist">{{ form.sender.errors }}</ul>{% endif %}
-
-        <li>{{ form.subject.label_tag }} {{ form.subject }}</li>
-        <li class="helptext">{{ form.subject.help_text }}</li>
-        {% if form.subject.errors %}<ul class="errorlist">{{ form.subject.errors }}</ul>{% endif %}
-
-        ...
-    </ul>
-    </form>
-
-Highlighting required fields in templates
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It's common to show a user which fields are required. Here's an example of how
-to do that, using the above example modified to insert an asterisk after the
-label of each required field::
-
-    <form method="post" action="">
-    <dl>
-    {% for field in form %}
-        <dt>{{ field.label_tag }}{% if field.field.required %}*{% endif %}</dt>
-        <dd>{{ field }}</dd>
-        {% if field.help_text %}<dd>{{ field.help_text }}</dd>{% endif %}
-        {% if field.errors %}<dd class="myerrors">{{ field.errors }}</dd>{% endif %}
-    {% endfor %}
-    </dl>
-    <input type="submit" />
-    </form>
-
-The ``{% if field.field.required %}*{% endif %}`` fragment is the relevant
-addition here. It adds the asterisk only if the field is required.
-
-Note that we check ``field.field.required`` and not ``field.required``. In the
-template, ``field`` is a ``forms.forms.BoundField`` instance, which holds
-the actual ``Field`` instance in its ``field`` attribute.
-
-Binding uploaded files to a form
---------------------------------
-
-**New in Django development version**
-
-Dealing with forms that have ``FileField`` and ``ImageField`` fields
-is a little more complicated than a normal form.
-
-Firstly, in order to upload files, you'll need to make sure that your
-``<form>`` element correctly defines the ``enctype`` as
-``"multipart/form-data"``::
-
-  <form enctype="multipart/form-data" method="post" action="/foo/">
-
-Secondly, when you use the form, you need to bind the file data. File
-data is handled separately to normal form data, so when your form
-contains a ``FileField`` and ``ImageField``, you will need to specify
-a second argument when you bind your form. So if we extend our
-ContactForm to include an ``ImageField`` called ``mugshot``, we
-need to bind the file data containing the mugshot image::
-
-    # Bound form with an image field
-    >>> from django.core.files.uploadedfile import SimpleUploadedFile
-    >>> data = {'subject': 'hello',
-    ...         'message': 'Hi there',
-    ...         'sender': 'foo@example.com',
-    ...         'cc_myself': True}
-    >>> file_data = {'mugshot': SimpleUploadedFile('face.jpg', <file data>)}
-    >>> f = ContactFormWithMugshot(data, file_data)
-
-In practice, you will usually specify ``request.FILES`` as the source
-of file data (just like you use ``request.POST`` as the source of
-form data)::
-
-    # Bound form with an image field, data from the request
-    >>> f = ContactFormWithMugshot(request.POST, request.FILES)
-
-Constructing an unbound form is the same as always -- just omit both
-form data *and* file data::
-
-    # Unbound form with a image field
-    >>> f = ContactFormWithMugshot()
-
-Testing for multipart forms
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you're writing reusable views or templates, you may not know ahead of time
-whether your form is a multipart form or not. The ``is_multipart()`` method
-tells you whether the form requires multipart encoding for submission::
-
-    >>> f = ContactFormWithMugshot()
-    >>> f.is_multipart()
-    True
-
-Here's an example of how you might use this in a template::
-
-    {% if form.is_multipart %}
-        <form enctype="multipart/form-data" method="post" action="/foo/">
-    {% else %}
-        <form method="post" action="/foo/">
-    {% endif %}
-    {{ form }}
-    </form>
-
-Subclassing forms
------------------
-
-If you have multiple ``Form`` classes that share fields, you can use
-subclassing to remove redundancy.
-
-When you subclass a custom ``Form`` class, the resulting subclass will
-include all fields of the parent class(es), followed by the fields you define
-in the subclass.
-
-In this example, ``ContactFormWithPriority`` contains all the fields from
-``ContactForm``, plus an additional field, ``priority``. The ``ContactForm``
-fields are ordered first::
-
-    >>> class ContactFormWithPriority(ContactForm):
-    ...     priority = forms.CharField()
-    >>> f = ContactFormWithPriority(auto_id=False)
-    >>> print f.as_ul()
-    <li>Subject: <input type="text" name="subject" maxlength="100" /></li>
-    <li>Message: <input type="text" name="message" /></li>
-    <li>Sender: <input type="text" name="sender" /></li>
-    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
-    <li>Priority: <input type="text" name="priority" /></li>
-
-It's possible to subclass multiple forms, treating forms as "mix-ins." In this
-example, ``BeatleForm`` subclasses both ``PersonForm`` and ``InstrumentForm``
-(in that order), and its field list includes the fields from the parent
-classes::
-
-    >>> class PersonForm(Form):
-    ...     first_name = CharField()
-    ...     last_name = CharField()
-    >>> class InstrumentForm(Form):
-    ...     instrument = CharField()
-    >>> class BeatleForm(PersonForm, InstrumentForm):
-    ...     haircut_type = CharField()
-    >>> b = BeatleForm(auto_id=False)
-    >>> print b.as_ul()
-    <li>First name: <input type="text" name="first_name" /></li>
-    <li>Last name: <input type="text" name="last_name" /></li>
-    <li>Instrument: <input type="text" name="instrument" /></li>
-    <li>Haircut type: <input type="text" name="haircut_type" /></li>
-
-Prefixes for forms
-------------------
-
-You can put several Django forms inside one ``<form>`` tag. To give each
-``Form`` its own namespace, use the ``prefix`` keyword argument::
-
-    >>> mother = PersonForm(prefix="mother")
-    >>> father = PersonForm(prefix="father")
-    >>> print mother.as_ul()
-    <li><label for="id_mother-first_name">First name:</label> <input type="text" name="mother-first_name" id="id_mother-first_name" /></li>
-    <li><label for="id_mother-last_name">Last name:</label> <input type="text" name="mother-last_name" id="id_mother-last_name" /></li>
-    >>> print father.as_ul()
-    <li><label for="id_father-first_name">First name:</label> <input type="text" name="father-first_name" id="id_father-first_name" /></li>
-    <li><label for="id_father-last_name">Last name:</label> <input type="text" name="father-last_name" id="id_father-last_name" /></li>
-
-Fields
-======
-
-When you create a ``Form`` class, the most important part is defining the
-fields of the form. Each field has custom validation logic, along with a few
-other hooks.
-
-Although the primary way you'll use ``Field`` classes is in ``Form`` classes,
-you can also instantiate them and use them directly to get a better idea of
-how they work. Each ``Field`` instance has a ``clean()`` method, which takes
-a single argument and either raises a ``django.forms.ValidationError``
-exception or returns the clean value::
-
-    >>> f = forms.EmailField()
-    >>> f.clean('foo@example.com')
-    u'foo@example.com'
-    >>> f.clean(u'foo@example.com')
-    u'foo@example.com'
-    >>> f.clean('invalid e-mail address')
-    Traceback (most recent call last):
-    ...
-    ValidationError: [u'Enter a valid e-mail address.']
-
-If you've used Django's old forms/validation framework, take care in noticing
-this ``ValidationError`` is different than the previous ``ValidationError``.
-This one lives at ``django.forms.ValidationError`` rather than
-``django.core.validators.ValidationError``.
-
-Core field arguments
---------------------
-
-Each ``Field`` class constructor takes at least these arguments. Some
-``Field`` classes take additional, field-specific arguments, but the following
-should *always* be accepted:
-
-``required``
-~~~~~~~~~~~~
-
-By default, each ``Field`` class assumes the value is required, so if you pass
-an empty value -- either ``None`` or the empty string (``""``) -- then
-``clean()`` will raise a ``ValidationError`` exception::
-
-    >>> f = forms.CharField()
-    >>> f.clean('foo')
-    u'foo'
-    >>> f.clean('')
-    Traceback (most recent call last):
-    ...
-    ValidationError: [u'This field is required.']
-    >>> f.clean(None)
-    Traceback (most recent call last):
-    ...
-    ValidationError: [u'This field is required.']
-    >>> f.clean(' ')
-    u' '
-    >>> f.clean(0)
-    u'0'
-    >>> f.clean(True)
-    u'True'
-    >>> f.clean(False)
-    u'False'
-
-To specify that a field is *not* required, pass ``required=False`` to the
-``Field`` constructor::
-
-    >>> f = forms.CharField(required=False)
-    >>> f.clean('foo')
-    u'foo'
-    >>> f.clean('')
-    u''
-    >>> f.clean(None)
-    u''
-    >>> f.clean(0)
-    u'0'
-    >>> f.clean(True)
-    u'True'
-    >>> f.clean(False)
-    u'False'
-
-If a ``Field`` has ``required=False`` and you pass ``clean()`` an empty value,
-then ``clean()`` will return a *normalized* empty value rather than raising
-``ValidationError``. For ``CharField``, this will be a Unicode empty string.
-For other ``Field`` classes, it might be ``None``. (This varies from field to
-field.)
-
-``label``
-~~~~~~~~~
-
-The ``label`` argument lets you specify the "human-friendly" label for this
-field. This is used when the ``Field`` is displayed in a ``Form``.
-
-As explained in "Outputting forms as HTML" above, the default label for a
-``Field`` is generated from the field name by converting all underscores to
-spaces and upper-casing the first letter. Specify ``label`` if that default
-behavior doesn't result in an adequate label.
-
-Here's a full example ``Form`` that implements ``label`` for two of its fields.
-We've specified ``auto_id=False`` to simplify the output::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField(label='Your name')
-    ...     url = forms.URLField(label='Your Web site', required=False)
-    ...     comment = forms.CharField()
-    >>> f = CommentForm(auto_id=False)
-    >>> print f
-    <tr><th>Your name:</th><td><input type="text" name="name" /></td></tr>
-    <tr><th>Your Web site:</th><td><input type="text" name="url" /></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-
-``initial``
-~~~~~~~~~~~
-
-The ``initial`` argument lets you specify the initial value to use when
-rendering this ``Field`` in an unbound ``Form``.
-
-The use-case for this is when you want to display an "empty" form in which a
-field is initialized to a particular value. For example::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField(initial='Your name')
-    ...     url = forms.URLField(initial='http://')
-    ...     comment = forms.CharField()
-    >>> f = CommentForm(auto_id=False)
-    >>> print f
-    <tr><th>Name:</th><td><input type="text" name="name" value="Your name" /></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url" value="http://" /></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-
-You may be thinking, why not just pass a dictionary of the initial values as
-data when displaying the form? Well, if you do that, you'll trigger validation,
-and the HTML output will include any validation errors::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField()
-    ...     url = forms.URLField()
-    ...     comment = forms.CharField()
-    >>> default_data = {'name': 'Your name', 'url': 'http://'}
-    >>> f = CommentForm(default_data, auto_id=False)
-    >>> print f
-    <tr><th>Name:</th><td><input type="text" name="name" value="Your name" /></td></tr>
-    <tr><th>Url:</th><td><ul class="errorlist"><li>Enter a valid URL.</li></ul><input type="text" name="url" value="http://" /></td></tr>
-    <tr><th>Comment:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="comment" /></td></tr>
-
-This is why ``initial`` values are only displayed for unbound forms. For bound
-forms, the HTML output will use the bound data.
-
-Also note that ``initial`` values are *not* used as "fallback" data in
-validation if a particular field's value is not given. ``initial`` values are
-*only* intended for initial form display::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField(initial='Your name')
-    ...     url = forms.URLField(initial='http://')
-    ...     comment = forms.CharField()
-    >>> data = {'name': '', 'url': '', 'comment': 'Foo'}
-    >>> f = CommentForm(data)
-    >>> f.is_valid()
-    False
-    # The form does *not* fall back to using the initial values.
-    >>> f.errors
-    {'url': [u'This field is required.'], 'name': [u'This field is required.']}
-
-``widget``
-~~~~~~~~~~
-
-The ``widget`` argument lets you specify a ``Widget`` class to use when
-rendering this ``Field``. See `Widgets`_ below for more information.
-
-``help_text``
-~~~~~~~~~~~~~
-
-The ``help_text`` argument lets you specify descriptive text for this
-``Field``. If you provide ``help_text``, it will be displayed next to the
-``Field`` when the ``Field`` is rendered by one of the convenience ``Form``
-methods (e.g., ``as_ul()``).
-
-Here's a full example ``Form`` that implements ``help_text`` for two of its
-fields. We've specified ``auto_id=False`` to simplify the output::
-
-    >>> class HelpTextContactForm(forms.Form):
-    ...     subject = forms.CharField(max_length=100, help_text='100 characters max.')
-    ...     message = forms.CharField()
-    ...     sender = forms.EmailField(help_text='A valid e-mail address, please.')
-    ...     cc_myself = forms.BooleanField(required=False)
-    >>> f = HelpTextContactForm(auto_id=False)
-    >>> print f.as_table()
-    <tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" /><br />100 characters max.</td></tr>
-    <tr><th>Message:</th><td><input type="text" name="message" /></td></tr>
-    <tr><th>Sender:</th><td><input type="text" name="sender" /><br />A valid e-mail address, please.</td></tr>
-    <tr><th>Cc myself:</th><td><input type="checkbox" name="cc_myself" /></td></tr>
-    >>> print f.as_ul()
-    <li>Subject: <input type="text" name="subject" maxlength="100" /> 100 characters max.</li>
-    <li>Message: <input type="text" name="message" /></li>
-    <li>Sender: <input type="text" name="sender" /> A valid e-mail address, please.</li>
-    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
-    >>> print f.as_p()
-    <p>Subject: <input type="text" name="subject" maxlength="100" /> 100 characters max.</p>
-    <p>Message: <input type="text" name="message" /></p>
-    <p>Sender: <input type="text" name="sender" /> A valid e-mail address, please.</p>
-    <p>Cc myself: <input type="checkbox" name="cc_myself" /></p>
-
-``error_messages``
-~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-The ``error_messages`` argument lets you override the default messages that the
-field will raise. Pass in a dictionary with keys matching the error messages you
-want to override. For example, here is the default error message::
-
-    >>> generic = forms.CharField()
-    >>> generic.clean('')
-    Traceback (most recent call last):
-      ...
-    ValidationError: [u'This field is required.']
-
-And here is a custom error message::
-
-    >>> name = forms.CharField(error_messages={'required': 'Please enter your name'})
-    >>> name.clean('')
-    Traceback (most recent call last):
-      ...
-    ValidationError: [u'Please enter your name']
-
-In the `built-in Field classes`_ section below, each ``Field`` defines the
-error message keys it uses.
-
-Dynamic initial values
-----------------------
-
-The ``initial`` argument to ``Field`` (explained above) lets you hard-code the
-initial value for a ``Field`` -- but what if you want to declare the initial
-value at runtime? For example, you might want to fill in a ``username`` field
-with the username of the current session.
-
-To accomplish this, use the ``initial`` argument to a ``Form``. This argument,
-if given, should be a dictionary mapping field names to initial values. Only
-include the fields for which you're specifying an initial value; it's not
-necessary to include every field in your form. For example::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField()
-    ...     url = forms.URLField()
-    ...     comment = forms.CharField()
-    >>> f = CommentForm(initial={'name': 'your username'}, auto_id=False)
-    >>> print f
-    <tr><th>Name:</th><td><input type="text" name="name" value="your username" /></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-    >>> f = CommentForm(initial={'name': 'another username'}, auto_id=False)
-    >>> print f
-    <tr><th>Name:</th><td><input type="text" name="name" value="another username" /></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-
-Just like the ``initial`` parameter to ``Field``, these values are only
-displayed for unbound forms, and they're not used as fallback values if a
-particular value isn't provided.
-
-Finally, note that if a ``Field`` defines ``initial`` *and* you include
-``initial`` when instantiating the ``Form``, then the latter ``initial`` will
-have precedence. In this example, ``initial`` is provided both at the field
-level and at the form instance level, and the latter gets precedence::
-
-    >>> class CommentForm(forms.Form):
-    ...     name = forms.CharField(initial='class')
-    ...     url = forms.URLField()
-    ...     comment = forms.CharField()
-    >>> f = CommentForm(initial={'name': 'instance'}, auto_id=False)
-    >>> print f
-    <tr><th>Name:</th><td><input type="text" name="name" value="instance" /></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-
-Built-in ``Field`` classes
---------------------------
-
-Naturally, the ``forms`` library comes with a set of ``Field`` classes that
-represent common validation needs. This section documents each built-in field.
-
-For each field, we describe the default widget used if you don't specify
-``widget``. We also specify the value returned when you provide an empty value
-(see the section on ``required`` above to understand what that means).
-
-``BooleanField``
-~~~~~~~~~~~~~~~~
-
-    * Default widget: ``CheckboxInput``
-    * Empty value: ``False``
-    * Normalizes to: A Python ``True`` or ``False`` value.
-    * Validates that the check box is checked (i.e. the value is ``True``) if
-      the field has ``required=True``.
-    * Error message keys: ``required``
-
-**New in Django development version:** The empty value for a ``CheckboxInput``
-(and hence the standard ``BooleanField``) has changed to return ``False``
-instead of ``None`` in the development version.
-
-.. note::
-    Since all ``Field`` subclasses have ``required=True`` by default, the
-    validation condition here is important. If you want to include a checkbox
-    in your form that can be either checked or unchecked, you must remember to
-    pass in ``required=False`` when creating the ``BooleanField``.
-
-``CharField``
-~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates ``max_length`` or ``min_length``, if they are provided.
-      Otherwise, all inputs are valid.
-    * Error message keys: ``required``, ``max_length``, ``min_length``
-
-Has two optional arguments for validation, ``max_length`` and ``min_length``.
-If provided, these arguments ensure that the string is at most or at least the
-given length.
-
-``ChoiceField``
-~~~~~~~~~~~~~~~
-
-    * Default widget: ``Select``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates that the given value exists in the list of choices.
-    * Error message keys: ``required``, ``invalid_choice``
-
-Takes one extra argument, ``choices``, which is an iterable (e.g., a list or
-tuple) of 2-tuples to use as choices for this field. This argument accepts
-the same formats as the ``choices`` argument to a model field. See the
-`model API documentation on choices`_ for more details.
-
-.. _model API documentation on choices: ../model-api#choices
-
-``DateField``
-~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python ``datetime.date`` object.
-    * Validates that the given value is either a ``datetime.date``,
-      ``datetime.datetime`` or string formatted in a particular date format.
-    * Error message keys: ``required``, ``invalid``
-
-Takes one optional argument, ``input_formats``, which is a list of formats used
-to attempt to convert a string to a valid ``datetime.date`` object.
-
-If no ``input_formats`` argument is provided, the default input formats are::
-
-    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
-    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
-    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
-    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
-    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
-
-``DateTimeField``
-~~~~~~~~~~~~~~~~~
-
-    * Default widget: ``DateTimeInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python ``datetime.datetime`` object.
-    * Validates that the given value is either a ``datetime.datetime``,
-      ``datetime.date`` or string formatted in a particular datetime format.
-    * Error message keys: ``required``, ``invalid``
-
-Takes one optional argument, ``input_formats``, which is a list of formats used
-to attempt to convert a string to a valid ``datetime.datetime`` object.
-
-If no ``input_formats`` argument is provided, the default input formats are::
-
-    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
-    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
-    '%Y-%m-%d',              # '2006-10-25'
-    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
-    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
-    '%m/%d/%Y',              # '10/25/2006'
-    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
-    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
-    '%m/%d/%y',              # '10/25/06'
-
-**New in Django development version:** The ``DateTimeField`` used to use a
-``TextInput`` widget by default. This has now changed.
-
-``DecimalField``
-~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-    * Default widget: ``TextInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python ``decimal``.
-    * Validates that the given value is a decimal. Leading and trailing
-      whitespace is ignored.
-    * Error message keys: ``required``, ``invalid``, ``max_value``,
-      ``min_value``, ``max_digits``, ``max_decimal_places``,
-      ``max_whole_digits``
-
-Takes four optional arguments: ``max_value``, ``min_value``, ``max_digits``,
-and ``decimal_places``. The first two define the limits for the fields value.
-``max_digits`` is the maximum number of digits (those before the decimal
-point plus those after the decimal point, with leading zeros stripped)
-permitted in the value, whilst ``decimal_places`` is the maximum number of
-decimal places permitted.
-
-``EmailField``
-~~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates that the given value is a valid e-mail address, using a
-      moderately complex regular expression.
-    * Error message keys: ``required``, ``invalid``
-
-Has two optional arguments for validation, ``max_length`` and ``min_length``.
-If provided, these arguments ensure that the string is at most or at least the
-given length.
-
-``FileField``
-~~~~~~~~~~~~~
-
-**New in Django development version**
-
-    * Default widget: ``FileInput``
-    * Empty value: ``None``
-    * Normalizes to: An ``UploadedFile`` object that wraps the file content
-      and file name into a single object.
-    * Validates that non-empty file data has been bound to the form.
-    * Error message keys: ``required``, ``invalid``, ``missing``, ``empty``
-
-To learn more about the ``UploadedFile`` object, see the `file uploads documentation`_.
-
-When you use a ``FileField`` in a form, you must also remember to
-`bind the file data to the form`_.
-
-.. _file uploads documentation: ../upload_handling/
-.. _`bind the file data to the form`: `Binding uploaded files to a form`_
-
-``FilePathField``
-~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-    * Default widget: ``Select``
-    * Empty value: ``None``
-    * Normalizes to: A unicode object
-    * Validates that the selected choice exists in the list of choices.
-    * Error message keys: ``required``, ``invalid_choice``
-
-The field allows choosing from files inside a certain directory. It takes three
-extra arguments:
-
-    ==============  ==========  ===============================================
-    Argument        Required?   Description
-    ==============  ==========  ===============================================
-    ``path``        Yes         The absolute path to the directory whose
-                                contents you want listed. This directory must
-                                exist.
-
-    ``recursive``   No          If ``False`` (the default) only the direct
-                                contents of ``path`` will be offered as choices.
-                                If ``True``, the directory will be descended
-                                into recursively and all descendants will be
-                                listed as choices.
-
-    ``match``       No          A regular expression pattern; only files with
-                                names matching this expression will be allowed
-                                as choices.
-    ==============  ==========  ===============================================
-
-``FloatField``
-~~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python float.
-    * Validates that the given value is an float. Leading and trailing
-      whitespace is allowed, as in Python's ``float()`` function.
-    * Error message keys: ``required``, ``invalid``, ``max_value``,
-      ``min_value``
-
-Takes two optional arguments for validation, ``max_value`` and ``min_value``.
-These control the range of values permitted in the field.
-
-``ImageField``
-~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-    * Default widget: ``FileInput``
-    * Empty value: ``None``
-    * Normalizes to: An ``UploadedFile`` object that wraps the file content
-      and file name into a single object.
-    * Validates that file data has been bound to the form, and that the
-      file is of an image format understood by PIL.
-    * Error message keys: ``required``, ``invalid``, ``missing``, ``empty``,
-      ``invalid_image``
-
-Using an ImageField requires that the `Python Imaging Library`_ is installed.
-
-When you use an ``ImageField`` in a form, you must also remember to
-`bind the file data to the form`_.
-
-.. _Python Imaging Library: http://www.pythonware.com/products/pil/
-
-``IntegerField``
-~~~~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python integer or long integer.
-    * Validates that the given value is an integer. Leading and trailing
-      whitespace is allowed, as in Python's ``int()`` function.
-    * Error message keys: ``required``, ``invalid``, ``max_value``,
-      ``min_value``
-
-Takes two optional arguments for validation, ``max_value`` and ``min_value``.
-These control the range of values permitted in the field.
-
-``IPAddressField``
-~~~~~~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates that the given value is a valid IPv4 address, using a regular
-      expression.
-    * Error message keys: ``required``, ``invalid``
-
-``MultipleChoiceField``
-~~~~~~~~~~~~~~~~~~~~~~~
-
-    * Default widget: ``SelectMultiple``
-    * Empty value: ``[]`` (an empty list)
-    * Normalizes to: A list of Unicode objects.
-    * Validates that every value in the given list of values exists in the list
-      of choices.
-    * Error message keys: ``required``, ``invalid_choice``, ``invalid_list``
-
-Takes one extra argument, ``choices``, which is an iterable (e.g., a list or
-tuple) of 2-tuples to use as choices for this field. This argument accepts
-the same formats as the ``choices`` argument to a model field. See the
-`model API documentation on choices`_ for more details.
-
-``NullBooleanField``
-~~~~~~~~~~~~~~~~~~~~
-
-    * Default widget: ``NullBooleanSelect``
-    * Empty value: ``None``
-    * Normalizes to: A Python ``True``, ``False`` or ``None`` value.
-    * Validates nothing (i.e., it never raises a ``ValidationError``).
-
-``RegexField``
-~~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates that the given value matches against a certain regular
-      expression.
-    * Error message keys: ``required``, ``invalid``
-
-Takes one required argument, ``regex``, which is a regular expression specified
-either as a string or a compiled regular expression object.
-
-Also takes the following optional arguments:
-
-    ======================  =====================================================
-    Argument                Description
-    ======================  =====================================================
-    ``max_length``          Ensures the string has at most this many characters.
-    ``min_length``          Ensures the string has at least this many characters.
-    ======================  =====================================================
-
-The optional argument ``error_message`` is also accepted for backwards
-compatibility. The preferred way to provide an error message is to use the
-``error_messages`` argument, passing a dictionary with ``'invalid'`` as a key
-and the error message as the value.
-
-``TimeField``
-~~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``None``
-    * Normalizes to: A Python ``datetime.time`` object.
-    * Validates that the given value is either a ``datetime.time`` or string
-      formatted in a particular time format.
-    * Error message keys: ``required``, ``invalid``
-
-Takes one optional argument, ``input_formats``, which is a list of formats used
-to attempt to convert a string to a valid ``datetime.time`` object.
-
-If no ``input_formats`` argument is provided, the default input formats are::
-
-    '%H:%M:%S',     # '14:30:59'
-    '%H:%M',        # '14:30'
-
-``URLField``
-~~~~~~~~~~~~
-
-    * Default widget: ``TextInput``
-    * Empty value: ``''`` (an empty string)
-    * Normalizes to: A Unicode object.
-    * Validates that the given value is a valid URL.
-    * Error message keys: ``required``, ``invalid``, ``invalid_link``
-
-Takes the following optional arguments:
-
-    ========================  =====================================================
-    Argument                  Description
-    ========================  =====================================================
-    ``max_length``            Ensures the string has at most this many characters.
-    ``min_length``            Ensures the string has at least this many characters.
-    ``verify_exists``         If ``True``, the validator will attempt to load the
-                              given URL, raising ``ValidationError`` if the page
-                              gives a 404. Defaults to ``False``.
-    ``validator_user_agent``  String used as the user-agent used when checking for
-                              a URL's existence. Defaults to the value of the
-                              ``URL_VALIDATOR_USER_AGENT`` setting.
-    ========================  =====================================================
-
-Slightly complex built-in ``Field`` classes
--------------------------------------------
-
-The following are not yet documented here. See the unit tests, linked-to from
-the bottom of this document, for examples of their use.
-
-``ComboField``
-~~~~~~~~~~~~~~
-
-``MultiValueField``
-~~~~~~~~~~~~~~~~~~~
-
-``SplitDateTimeField``
-~~~~~~~~~~~~~~~~~~~~~~
-
-Fields which handle relationships
----------------------------------
-
-For representing relationships between models, two fields are
-provided which can derive their choices from a ``QuerySet``, and which
-place one or more model objects into the ``cleaned_data`` dictionary
-of forms in which they're used. Both of these fields have an
-additional required argument:
-
-``queryset``
-    A ``QuerySet`` of model objects from which the choices for the
-    field will be derived, and which will be used to validate the
-    user's selection.
-
-``ModelChoiceField``
-~~~~~~~~~~~~~~~~~~~~
-
-Allows the selection of a single model object, suitable for
-representing a foreign key.
-
-The ``__unicode__`` method of the model will be called to generate
-string representations of the objects for use in the field's choices;
-to provide customized representations, subclass ``ModelChoiceField``
-and override ``label_from_instance``. This method will receive a model
-object, and should return a string suitable for representing it. For
-example::
-
-    class MyModelChoiceField(ModelChoiceField):
-        def label_from_instance(self, obj):
-            return "My Object #%i" % obj.id
-
-``ModelMultipleChoiceField``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Allows the selection of one or more model objects, suitable for
-representing a many-to-many relation. As with ``ModelChoiceField``,
-you can use ``label_from_instance`` to customize the object
-representations.
-
-Creating custom fields
-----------------------
-
-If the built-in ``Field`` classes don't meet your needs, you can easily create
-custom ``Field`` classes. To do this, just create a subclass of
-``django.forms.Field``. Its only requirements are that it implement a
-``clean()`` method and that its ``__init__()`` method accept the core arguments
-mentioned above (``required``, ``label``, ``initial``, ``widget``,
-``help_text``).
-
-Custom form and field validation
----------------------------------
-
-Form validation happens when the data is cleaned. If you want to customize
-this process, there are various places you can change, each one serving a
-different purpose. Three types of cleaning methods are run during form
-processing. These are normally executed when you call the ``is_valid()``
-method on a form. There are other things that can trigger cleaning and
-validation (accessing the ``errors`` attribute or calling ``full_clean()``
-directly), but normally they won't be needed.
-
-In general, any cleaning method can raise ``ValidationError`` if there is a
-problem with the data it is processing, passing the relevant error message to
-the ``ValidationError`` constructor. If no ``ValidationError`` is raised, the
-method should return the cleaned (normalized) data as a Python object.
-
-If you detect multiple errors during a cleaning method and wish to signal all
-of them to the form submitter, it is possible to pass a list of errors to the
-``ValidationError`` constructor.
-
-The three types of cleaning methods are:
-
-    * The ``clean()`` method on a Field subclass. This is responsible
-      for cleaning the data in a way that is generic for that type of field.
-      For example, a FloatField will turn the data into a Python ``float`` or
-      raise a ``ValidationError``.
-
-    * The ``clean_<fieldname>()`` method in a form subclass -- where
-      ``<fieldname>`` is replaced with the name of the form field attribute.
-      This method does any cleaning that is specific to that particular
-      attribute, unrelated to the type of field that it is. This method is not
-      passed any parameters. You will need to look up the value of the field
-      in ``self.cleaned_data`` and remember that it will be a Python object
-      at this point, not the original string submitted in the form (it will be
-      in ``cleaned_data`` because the general field ``clean()`` method, above,
-      has already cleaned the data once).
-
-      For example, if you wanted to validate that the contents of a
-      ``CharField`` called ``serialnumber`` was unique,
-      ``clean_serialnumber()`` would be the right place to do this. You don't
-      need a specific field (it's just a ``CharField``), but you want a
-      formfield-specific piece of validation and, possibly,
-      cleaning/normalizing the data.
-
-    * The Form subclass's ``clean()`` method. This method can perform
-      any validation that requires access to multiple fields from the form at
-      once. This is where you might put in things to check that if field ``A``
-      is supplied, field ``B`` must contain a valid e-mail address and the
-      like. The data that this method returns is the final ``cleaned_data``
-      attribute for the form, so don't forget to return the full list of
-      cleaned data if you override this method (by default, ``Form.clean()``
-      just returns ``self.cleaned_data``).
-
-      Note that any errors raised by your ``Form.clean()`` override will not
-      be associated with any field in particular. They go into a special
-      "field" (called ``__all__``), which you can access via the
-      ``non_field_errors()`` method if you need to.
-
-These methods are run in the order given above, one field at a time.  That is,
-for each field in the form (in the order they are declared in the form
-definition), the ``Field.clean()`` method (or its override) is run, then
-``clean_<fieldname>()``. Finally, once those two methods are run for every
-field, the ``Form.clean()`` method, or its override, is executed.
-
-As mentioned above, any of these methods can raise a ``ValidationError``. For
-any field, if the ``Field.clean()`` method raises a ``ValidationError``, any
-field-specific cleaning method is not called. However, the cleaning methods
-for all remaining fields are still executed.
-
-The ``clean()`` method for the ``Form`` class or subclass is always run. If
-that method raises a ``ValidationError``, ``cleaned_data`` will be an empty
-dictionary.
-
-The previous paragraph means that if you are overriding ``Form.clean()``, you
-should iterate through ``self.cleaned_data.items()``, possibly considering the
-``_errors`` dictionary attribute on the form as well. In this way, you will
-already know which fields have passed their individual validation requirements.
-
-A simple example
-~~~~~~~~~~~~~~~~
-
-Here's a simple example of a custom field that validates its input is a string
-containing comma-separated e-mail addresses, with at least one address. We'll
-keep it simple and assume e-mail validation is contained in a function called
-``is_valid_email()``. The full class::
-
-    from django import forms
-
-    class MultiEmailField(forms.Field):
-        def clean(self, value):
-            if not value:
-                raise forms.ValidationError('Enter at least one e-mail address.')
-            emails = value.split(',')
-            for email in emails:
-                if not is_valid_email(email):
-                    raise forms.ValidationError('%s is not a valid e-mail address.' % email)
-            return emails
-
-Let's alter the ongoing ``ContactForm`` example to demonstrate how you'd use
-this in a form. Simply use ``MultiEmailField`` instead of ``forms.EmailField``,
-like so::
-
-    class ContactForm(forms.Form):
-        subject = forms.CharField(max_length=100)
-        message = forms.CharField()
-        senders = MultiEmailField()
-        cc_myself = forms.BooleanField(required=False)
-
-Widgets
-=======
-
-A widget is Django's representation of a HTML input element. The widget
-handles the rendering of the HTML, and the extraction of data from a GET/POST
-dictionary that corresponds to the widget.
-
-Django provides a representation of all the basic HTML widgets, plus some
-commonly used groups of widgets:
-
-    ============================  ===========================================
-    Widget                        HTML Equivalent
-    ============================  ===========================================
-    ``TextInput``                 ``<input type='text' ...``
-    ``PasswordInput``             ``<input type='password' ...``
-    ``HiddenInput``               ``<input type='hidden' ...``
-    ``MultipleHiddenInput``       Multiple ``<input type='hidden' ...``
-                                  instances.
-    ``FileInput``                 ``<input type='file' ...``
-    ``DateTimeInput``             ``<input type='text' ...``
-    ``Textarea``                  ``<textarea>...</textarea>``
-    ``CheckboxInput``             ``<input type='checkbox' ...``
-    ``Select``                    ``<select><option ...``
-    ``NullBooleanSelect``         Select widget with options 'Unknown',
-                                  'Yes' and 'No'
-    ``SelectMultiple``            ``<select multiple='multiple'><option ...``
-    ``RadioSelect``               ``<ul><li><input type='radio' ...``
-    ``CheckboxSelectMultiple``    ``<ul><li><input type='checkbox' ...``
-    ``MultiWidget``               Wrapper around multiple other widgets
-    ``SplitDateTimeWidget``       Wrapper around two ``TextInput`` widgets:
-                                  one for the Date, and one for the Time.
-    ============================  ===========================================
-
-**New in Django development version:** The ``DateTimeInput`` has been added
-since the last release.
-
-Specifying widgets
-------------------
-
-Whenever you specify a field on a form, Django will use a default widget
-that is appropriate to the type of data that is to be displayed. To find
-which widget is used on which field, see the documentation for the
-built-in Field classes.
-
-However, if you want to use a different widget for a field, you can -
-just use the 'widget' argument on the field definition. For example::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField()
-        url = forms.URLField()
-        comment = forms.CharField(widget=forms.Textarea)
-
-This would specify a form with a comment that uses a larger Textarea widget,
-rather than the default TextInput widget.
-
-Customizing widget instances
-----------------------------
-
-When Django renders a widget as HTML, it only renders the bare minimum
-HTML - Django doesn't add a class definition, or any other widget-specific
-attributes. This means that all 'TextInput' widgets will appear the same
-on your Web page.
-
-If you want to make one widget look different to another, you need to
-specify additional attributes for each widget. When you specify a
-widget, you can provide a list of attributes that will be added to the
-rendered HTML for the widget.
-
-For example, take the following simple form::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField()
-        url = forms.URLField()
-        comment = forms.CharField()
-
-This form will include three default TextInput widgets, with default rendering -
-no CSS class, no extra attributes. This means that the input boxes provided for
-each widget will be rendered exactly the same::
-
-    >>> f = CommentForm(auto_id=False)
-    >>> f.as_table()
-    <tr><th>Name:</th><td><input type="text" name="name" /></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url"/></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
-
-On a real Web page, you probably don't want every widget to look the same. You
-might want a larger input element for the comment, and you might want the
-'name' widget to have some special CSS class. To do this, you specify a
-custom widget for your fields, and specify some attributes to use
-when rendering those widgets::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField(
-                    widget=forms.TextInput(attrs={'class':'special'}))
-        url = forms.URLField()
-        comment = forms.CharField(
-                   widget=forms.TextInput(attrs={'size':'40'}))
-
-Django will then include the extra attributes in the rendered output::
-
-    >>> f = CommentForm(auto_id=False)
-    >>> f.as_table()
-    <tr><th>Name:</th><td><input type="text" name="name" class="special"/></td></tr>
-    <tr><th>Url:</th><td><input type="text" name="url"/></td></tr>
-    <tr><th>Comment:</th><td><input type="text" name="comment" size="40"/></td></tr>
-
-Custom Widgets
---------------
-
-When you start to write a lot of forms, you will probably find that you will
-reuse certain sets of widget attributes over and over again. Rather than
-repeat these attribute definitions every time you need them, Django allows
-you to capture those definitions as a custom widget.
-
-For example, if you find that you are including a lot of comment fields on
-forms, you could capture the idea of a ``TextInput`` with a specific
-default ``size`` attribute as a custom extension to the ``TextInput`` widget::
-
-    class CommentWidget(forms.TextInput):
-        def __init__(self, *args, **kwargs):
-            attrs = kwargs.setdefault('attrs',{})
-            if 'size' not in attrs:
-                attrs['size'] = 40
-            super(CommentWidget, self).__init__(*args, **kwargs)
-
-We allow the ``size`` attribute to be overridden by the user, but, by default,
-this widget will behave as if ``attrs={'size': 40}`` was always passed into the
-constructor.
-
-Then you can use this widget in your forms::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField()
-        url = forms.URLField()
-        comment = forms.CharField(widget=CommentWidget)
-
-You can even customize your custom widget, in the same way as you would
-any other widget. Adding a once-off class to your ``CommentWidget`` is as
-simple as adding an attribute definition::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField(max_length=20)
-        url = forms.URLField()
-        comment = forms.CharField(
-                    widget=CommentWidget(attrs={'class': 'special'}))
-
-Django also makes it easy to specify a custom field type that uses your custom
-widget. For example, you could define a customized field type for comments
-by defining::
-
-    class CommentInput(forms.CharField):
-        widget = CommentWidget
-
-You can then use this field whenever you have a form that requires a comment::
-
-    class CommentForm(forms.Form):
-        name = forms.CharField()
-        url = forms.URLField()
-        comment = CommentInput()
-
-Generating forms for models
-===========================
-
-The prefered way of generating forms that work with models is explained in the
-`ModelForms documentation`_.
-
-.. _ModelForms documentation: ../modelforms/
-
-Media
-=====
-
-Rendering an attractive and easy-to-use web form requires more than just
-HTML - it also requires CSS stylesheets, and if you want to use fancy
-"Web2.0" widgets, you may also need to include some JavaScript on each
-page. The exact combination of CSS and JavaScript that is required for
-any given page will depend upon the widgets that are in use on that page.
-
-This is where Django media definitions come in. Django allows you to
-associate different media files with the forms and widgets that require
-that media. For example, if you want to use a calendar to render DateFields,
-you can define a custom Calendar widget. This widget can then be associated
-with the CSS and JavaScript that is required to render the calendar. When
-the Calendar widget is used on a form, Django is able to identify the CSS and
-JavaScript files that are required, and provide the list of file names
-in a form suitable for easy inclusion on your web page.
-
-.. admonition:: Media and Django Admin
-
-    The Django Admin application defines a number of customized widgets
-    for calendars, filtered selections, and so on. These widgets define
-    media requirements, and the Django Admin uses the custom widgets
-    in place of the Django defaults. The Admin templates will only include
-    those media files that are required to render the widgets on any
-    given page.
-
-    If you like the widgets that the Django Admin application uses,
-    feel free to use them in your own application! They're all stored
-    in ``django.contrib.admin.widgets``.
-
-.. admonition:: Which JavaScript toolkit?
-
-    Many JavaScript toolkits exist, and many of them include widgets (such
-    as calendar widgets) that can be used to enhance your application.
-    Django has deliberately avoided blessing any one JavaScript toolkit.
-    Each toolkit has its own relative strengths and weaknesses - use
-    whichever toolkit suits your requirements. Django is able to integrate
-    with any JavaScript toolkit.
-
-Media as a static definition
-----------------------------
-
-The easiest way to define media is as a static definition. Using this method,
-the media declaration is an inner class. The properties of the inner class
-define the media requirements.
-
-Here's a simple example::
-
-    class CalendarWidget(forms.TextInput):
-        class Media:
-            css = {
-                'all': ('pretty.css',)
-            }
-            js = ('animations.js', 'actions.js')
-
-This code defines a ``CalendarWidget``, which will be based on ``TextInput``.
-Every time the CalendarWidget is used on a form, that form will be directed
-to include the CSS file ``pretty.css``, and the JavaScript files
-``animations.js`` and ``actions.js``.
-
-This static media definition is converted at runtime into a widget property
-named ``media``. The media for a CalendarWidget instance can be retrieved
-through this property::
-
-    >>> w = CalendarWidget()
-    >>> print w.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-
-Here's a list of all possible ``Media`` options. There are no required options.
-
-``css``
-~~~~~~~
-
-A dictionary describing the CSS files required for various forms of output
-media.
-
-The values in the dictionary should be a tuple/list of file names. See
-`the section on media paths`_ for details of how to specify paths to media
-files.
-
-.. _the section on media paths: `Paths in media definitions`_
-
-The keys in the dictionary are the output media types. These are the same
-types accepted by CSS files in media declarations: 'all', 'aural', 'braille',
-'embossed', 'handheld', 'print', 'projection', 'screen', 'tty' and 'tv'. If
-you need to have different stylesheets for different media types, provide
-a list of CSS files for each output medium. The following example would
-provide two CSS options -- one for the screen, and one for print::
-
-    class Media:
-        css = {
-            'screen': ('pretty.css',),
-            'print': ('newspaper.css',)
-        }
-
-If a group of CSS files are appropriate for multiple output media types,
-the dictionary key can be a comma separated list of output media types.
-In the following example, TV's and projectors will have the same media
-requirements::
-
-    class Media:
-        css = {
-            'screen': ('pretty.css',),
-            'tv,projector': ('lo_res.css',),
-            'print': ('newspaper.css',)
-        }
-
-If this last CSS definition were to be rendered, it would become the following HTML::
-
-    <link href="http://media.example.com/pretty.css" type="text/css" media="screen" rel="stylesheet" />
-    <link href="http://media.example.com/lo_res.css" type="text/css" media="tv,projector" rel="stylesheet" />
-    <link href="http://media.example.com/newspaper.css" type="text/css" media="print" rel="stylesheet" />
-
-``js``
-~~~~~~
-
-A tuple describing the required JavaScript files. See
-`the section on media paths`_ for details of how to specify paths to media
-files.
-
-``extend``
-~~~~~~~~~~
-
-A boolean defining inheritance behavior for media declarations.
-
-By default, any object using a static media definition will inherit all the
-media associated with the parent widget. This occurs regardless of how the
-parent defines its media requirements. For example, if we were to extend our
-basic Calendar widget from the example above::
-
-    class FancyCalendarWidget(CalendarWidget):
-        class Media:
-            css = {
-                'all': ('fancy.css',)
-            }
-            js = ('whizbang.js',)
-
-    >>> w = FancyCalendarWidget()
-    >>> print w.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <link href="http://media.example.com/fancy.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
-
-The FancyCalendar widget inherits all the media from it's parent widget. If
-you don't want media to be inherited in this way, add an ``extend=False``
-declaration to the media declaration::
-
-    class FancyCalendar(Calendar):
-        class Media:
-            extend = False
-            css = {
-                'all': ('fancy.css',)
-            }
-            js = ('whizbang.js',)
-
-    >>> w = FancyCalendarWidget()
-    >>> print w.media
-    <link href="http://media.example.com/fancy.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
-
-If you require even more control over media inheritance, define your media
-using a `dynamic property`_. Dynamic properties give you complete control over
-which media files are inherited, and which are not.
-
-.. _dynamic property: `Media as a dynamic property`_
-
-Media as a dynamic property
----------------------------
-
-If you need to perform some more sophisticated manipulation of media
-requirements, you can define the media property directly. This is done
-by defining a model property that returns an instance of ``forms.Media``.
-The constructor for ``forms.Media`` accepts ``css`` and ``js`` keyword
-arguments in the same format as that used in a static media definition.
-
-For example, the static media definition for our Calendar Widget could
-also be defined in a dynamic fashion::
-
-    class CalendarWidget(forms.TextInput):
-        def _media(self):
-            return forms.Media(css={'all': ('pretty.css',)},
-                               js=('animations.js', 'actions.js'))
-        media = property(_media)
-
-See the section on `Media objects`_ for more details on how to construct
-return values for dynamic media properties.
-
-Paths in media definitions
---------------------------
-
-Paths used to specify media can be either relative or absolute. If a path
-starts with '/', 'http://' or 'https://', it will be interpreted as an absolute
-path, and left as-is. All other paths will be prepended with the value of
-``settings.MEDIA_URL``. For example, if the MEDIA_URL for your site was
-``http://media.example.com/``::
-
-    class CalendarWidget(forms.TextInput):
-        class Media:
-            css = {
-                'all': ('/css/pretty.css',),
-            }
-            js = ('animations.js', 'http://othersite.com/actions.js')
-
-    >>> w = CalendarWidget()
-    >>> print w.media
-    <link href="/css/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://othersite.com/actions.js"></script>
-
-Media objects
--------------
-
-When you interrogate the media attribute of a widget or form, the value that
-is returned is a ``forms.Media`` object. As we have already seen, the string
-representation of a Media object is the HTML required to include media
-in the ``<head>`` block of your HTML page.
-
-However, Media objects have some other interesting properties.
-
-Media subsets
-~~~~~~~~~~~~~
-
-If you only want media of a particular type, you can use the subscript operator
-to filter out a medium of interest. For example::
-
-    >>> w = CalendarWidget()
-    >>> print w.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-
-    >>> print w.media['css']
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-
-When you use the subscript operator, the value that is returned is a new
-Media object -- but one that only contains the media of interest.
-
-Combining media objects
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Media objects can also be added together. When two media objects are added,
-the resulting Media object contains the union of the media from both files::
-
-    class CalendarWidget(forms.TextInput):
-        class Media:
-            css = {
-                'all': ('pretty.css',)
-            }
-            js = ('animations.js', 'actions.js')
-
-    class OtherWidget(forms.TextInput):
-        class Media:
-            js = ('whizbang.js',)
-
-    >>> w1 = CalendarWidget()
-    >>> w2 = OtherWidget()
-    >>> print w1.media + w2.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
-
-Media on Forms
---------------
-
-Widgets aren't the only objects that can have media definitions -- forms
-can also define media. The rules for media definitions on forms are the
-same as the rules for widgets: declarations can be static or dynamic;
-path and inheritance rules for those declarations are exactly the same.
-
-Regardless of whether you define a media declaration, *all* Form objects
-have a media property. The default value for this property is the result
-of adding the media definitions for all widgets that are part of the form::
-
-    class ContactForm(forms.Form):
-        date = DateField(widget=CalendarWidget)
-        name = CharField(max_length=40, widget=OtherWidget)
-
-    >>> f = ContactForm()
-    >>> f.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
-
-If you want to associate additional media with a form -- for example, CSS for form
-layout -- simply add a media declaration to the form::
-
-    class ContactForm(forms.Form):
-        date = DateField(widget=CalendarWidget)
-        name = CharField(max_length=40, widget=OtherWidget)
-
-        class Media:
-            css = {
-                'all': ('layout.css',)
-            }
-
-    >>> f = ContactForm()
-    >>> f.media
-    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
-    <link href="http://media.example.com/layout.css" type="text/css" media="all" rel="stylesheet" />
-    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
-    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
-    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
-
-Formsets
-========
-
-A formset is a layer of abstraction to working with multiple forms on the same
-page. It can be best compared to a data grid. Let's say you have the following
-form::
-
-    >>> from django import forms
-    >>> class ArticleForm(forms.Form):
-    ...     title = forms.CharField()
-    ...     pub_date = forms.DateField()
-
-You might want to allow the user to create several articles at once. To create
-a formset out of an ``ArticleForm`` you would do::
-
-    >>> from django.forms.formsets import formset_factory
-    >>> ArticleFormSet = formset_factory(ArticleForm)
-
-You now have created a formset named ``ArticleFormSet``. The formset gives you
-the ability to iterate over the forms in the formset and display them as you
-would with a regular form::
-
-    >>> formset = ArticleFormSet()
-    >>> for form in formset.forms:
-    ...     print form.as_table()
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
-
-As you can see it only displayed one form. This is because by default the
-``formset_factory`` defines one extra form. This can be controlled with the
-``extra`` parameter::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
-
-Using initial data with a formset
----------------------------------
-
-Initial data is what drives the main usability of a formset. As shown above
-you can define the number of extra forms. What this means is that you are
-telling the formset how many additional forms to show in addition to the
-number of forms it generates from the initial data. Lets take a look at an
-example::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
-    >>> formset = ArticleFormSet(initial=[
-    ...     {'title': u'Django is now open source',
-    ...      'pub_date': datetime.date.today()},
-    ... ])
-
-    >>> for form in formset.forms:
-    ...     print form.as_table()
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Django is now open source" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-12" id="id_form-0-pub_date" /></td></tr>
-    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" id="id_form-1-title" /></td></tr>
-    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" id="id_form-1-pub_date" /></td></tr>
-    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
-    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
-
-There are now a total of three forms showing above. One for the initial data
-that was passed in and two extra forms. Also note that we are passing in a
-list of dictionaries as the initial data.
-
-Limiting the maximum number of forms
-------------------------------------
-
-The ``max_num`` parameter to ``formset_factory`` gives you the ability to
-force the maximum number of forms the formset will display::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2, max_num=1)
-    >>> formset = ArticleFormset()
-    >>> for form in formset.forms:
-    ...     print form.as_table()
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
-
-The default value of ``max_num`` is ``0`` which is the same as saying put no
-limit on the number forms displayed.
-
-Formset validation
-------------------
-
-Validation with a formset is about identical to a regular ``Form``. There is
-an ``is_valid`` method on the formset to provide a convenient way to validate
-each form in the formset::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm)
-    >>> formset = ArticleFormSet({})
-    >>> formset.is_valid()
-    True
-
-We passed in no data to the formset which is resulting in a valid form. The
-formset is smart enough to ignore extra forms that were not changed. If we
-attempt to provide an article, but fail to do so::
-
-    >>> data = {
-    ...     'form-TOTAL_FORMS': u'1',
-    ...     'form-INITIAL_FORMS': u'1',
-    ...     'form-0-title': u'Test',
-    ...     'form-0-pub_date': u'',
-    ... }
-    >>> formset = ArticleFormSet(data)
-    >>> formset.is_valid()
-    False
-    >>> formset.errors
-    [{'pub_date': [u'This field is required.']}]
-
-As we can see the formset properly performed validation and gave us the
-expected errors.
-
-Understanding the ManagementForm
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You may have noticed the additional data that was required in the formset's
-data above. This data is coming from the ``ManagementForm``. This form is
-dealt with internally to the formset. If you don't use it, it will result in
-an exception::
-
-    >>> data = {
-    ...     'form-0-title': u'Test',
-    ...     'form-0-pub_date': u'',
-    ... }
-    >>> formset = ArticleFormSet(data)
-    Traceback (most recent call last):
-    ...
-    django.forms.util.ValidationError: [u'ManagementForm data is missing or has been tampered with']
-
-It is used to keep track of how many form instances are being displayed. If
-you are adding new forms via JavaScript, you should increment the count fields
-in this form as well.
-
-Custom formset validation
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A formset has a ``clean`` method similar to the one on a ``Form`` class. This
-is where you define your own validation that deals at the formset level::
-
-    >>> from django.forms.formsets import BaseFormSet
-
-    >>> class BaseArticleFormSet(BaseFormSet):
-    ...     def clean(self):
-    ...         raise forms.ValidationError, u'An error occured.'
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet)
-    >>> formset = ArticleFormSet({})
-    >>> formset.is_valid()
-    False
-    >>> formset.non_form_errors()
-    [u'An error occured.']
-
-The formset ``clean`` method is called after all the ``Form.clean`` methods
-have been called. The errors will be found using the ``non_form_errors()``
-method on the formset.
-
-Dealing with ordering and deletion of forms
--------------------------------------------
-
-Common use cases with a formset is dealing with ordering and deletion of the
-form instances. This has been dealt with for you. The ``formset_factory``
-provides two optional parameters ``can_order`` and ``can_delete`` that will do
-the extra work of adding the extra fields and providing simpler ways of
-getting to that data.
-
-``can_order``
-~~~~~~~~~~~~~
-
-Default: ``False``
-
-Lets create a formset with the ability to order::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, can_order=True)
-    >>> formset = ArticleFormSet(initial=[
-    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
-    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
-    ... ])
-    >>> for form in formset.forms:
-    ...     print form.as_table()
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Article #1" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-10" id="id_form-0-pub_date" /></td></tr>
-    <tr><th><label for="id_form-0-ORDER">Order:</label></th><td><input type="text" name="form-0-ORDER" value="1" id="id_form-0-ORDER" /></td></tr>
-    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" value="Article #2" id="id_form-1-title" /></td></tr>
-    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" value="2008-05-11" id="id_form-1-pub_date" /></td></tr>
-    <tr><th><label for="id_form-1-ORDER">Order:</label></th><td><input type="text" name="form-1-ORDER" value="2" id="id_form-1-ORDER" /></td></tr>
-    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
-    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
-    <tr><th><label for="id_form-2-ORDER">Order:</label></th><td><input type="text" name="form-2-ORDER" id="id_form-2-ORDER" /></td></tr>
-
-This adds an additional field to each form. This new field is named ``ORDER``
-and is an ``forms.IntegerField``. For the forms that came from the initial
-data it automatically assigned them a numeric value. Lets look at what will
-happen when the user changes these values::
-
-    >>> data = {
-    ...     'form-TOTAL_FORMS': u'3',
-    ...     'form-INITIAL_FORMS': u'2',
-    ...     'form-0-title': u'Article #1',
-    ...     'form-0-pub_date': u'2008-05-10',
-    ...     'form-0-ORDER': u'2',
-    ...     'form-1-title': u'Article #2',
-    ...     'form-1-pub_date': u'2008-05-11',
-    ...     'form-1-ORDER': u'1',
-    ...     'form-2-title': u'Article #3',
-    ...     'form-2-pub_date': u'2008-05-01',
-    ...     'form-2-ORDER': u'0',
-    ... }
-
-    >>> formset = ArticleFormSet(data, initial=[
-    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
-    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
-    ... ])
-    >>> formset.is_valid()
-    True
-    >>> for form in formset.ordered_forms:
-    ...     print form.cleaned_data
-    {'pub_date': datetime.date(2008, 5, 1), 'ORDER': 0, 'title': u'Article #3'}
-    {'pub_date': datetime.date(2008, 5, 11), 'ORDER': 1, 'title': u'Article #2'}
-    {'pub_date': datetime.date(2008, 5, 10), 'ORDER': 2, 'title': u'Article #1'}
-
-``can_delete``
-~~~~~~~~~~~~~~
-
-Default: ``False``
-
-Lets create a formset with the ability to delete::
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, can_delete=True)
-    >>> formset = ArticleFormSet(initial=[
-    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
-    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
-    ... ])
-    >>> for form in formset.forms:
-    ....    print form.as_table()
-    <input type="hidden" name="form-TOTAL_FORMS" value="3" id="id_form-TOTAL_FORMS" /><input type="hidden" name="form-INITIAL_FORMS" value="2" id="id_form-INITIAL_FORMS" />
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Article #1" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-10" id="id_form-0-pub_date" /></td></tr>
-    <tr><th><label for="id_form-0-DELETE">Delete:</label></th><td><input type="checkbox" name="form-0-DELETE" id="id_form-0-DELETE" /></td></tr>
-    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" value="Article #2" id="id_form-1-title" /></td></tr>
-    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" value="2008-05-11" id="id_form-1-pub_date" /></td></tr>
-    <tr><th><label for="id_form-1-DELETE">Delete:</label></th><td><input type="checkbox" name="form-1-DELETE" id="id_form-1-DELETE" /></td></tr>
-    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
-    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
-    <tr><th><label for="id_form-2-DELETE">Delete:</label></th><td><input type="checkbox" name="form-2-DELETE" id="id_form-2-DELETE" /></td></tr>
-
-Similar to ``can_order`` this adds a new field to each form named ``DELETE``
-and is a ``forms.BooleanField``. When data comes through marking any of the
-delete fields you can access them with ``deleted_forms``::
-
-    >>> data = {
-    ...     'form-TOTAL_FORMS': u'3',
-    ...     'form-INITIAL_FORMS': u'2',
-    ...     'form-0-title': u'Article #1',
-    ...     'form-0-pub_date': u'2008-05-10',
-    ...     'form-0-DELETE': u'on',
-    ...     'form-1-title': u'Article #2',
-    ...     'form-1-pub_date': u'2008-05-11',
-    ...     'form-1-DELETE': u'',
-    ...     'form-2-title': u'',
-    ...     'form-2-pub_date': u'',
-    ...     'form-2-DELETE': u'',
-    ... }
-
-    >>> formset = ArticleFormSet(data, initial=[
-    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
-    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
-    ... ])
-    >>> [form.cleaned_data for form in formset.deleted_forms]
-    [{'DELETE': True, 'pub_date': datetime.date(2008, 5, 10), 'title': u'Article #1'}]
-
-Adding additional fields to a formset
--------------------------------------
-
-If you need to add additional fields to the formset this can be easily
-accomplished. The formset base class provides an ``add_fields`` method. You
-can simply override this method to add your own fields or even redefine the
-default fields/attributes of the order and deletion fields::
-
-    >>> class BaseArticleFormSet(BaseFormSet):
-    ...     def add_fields(self, form, index):
-    ...         super(BaseArticleFormSet, self).add_fields(form, index)
-    ...         form.fields["my_field"] = forms.CharField()
-
-    >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet)
-    >>> formset = ArticleFormSet()
-    >>> for form in formset.forms:
-    ...     print form.as_table()
-    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
-    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
-    <tr><th><label for="id_form-0-my_field">My field:</label></th><td><input type="text" name="form-0-my_field" id="id_form-0-my_field" /></td></tr>
-
-Using a formset in views and templates
---------------------------------------
-
-Using a formset inside a view is as easy as using a regular ``Form`` class.
-The only thing you will want to be aware of is making sure to use the
-management form inside the template. Lets look at a sample view::
-
-    def manage_articles(request):
-        ArticleFormSet = formset_factory(ArticleForm)
-        if request.method == 'POST':
-            formset = ArticleFormSet(request.POST, request.FILES)
-            if formset.is_valid():
-                # do something with the formset.cleaned_data
-        else:
-            formset = ArticleFormSet()
-        return render_to_response('manage_articles.html', {'formset': formset})
-
-The ``manage_articles.html`` template might look like this::
-
-    <form method="POST" action="">
-        {{ formset.management_form }}
-        <table>
-            {% for form in formset.forms %}
-            {{ form }}
-            {% endfor %}
-        </table>
-    </form>
-
-However the above can be slightly shortcutted and let the formset itself deal
-with the management form::
-
-    <form method="POST" action="">
-        <table>
-            {{ formset }}
-        </table>
-    </form>
-
-The above ends up calling the ``as_table`` method on the formset class.
diff --git a/docs/generic_views.txt b/docs/generic_views.txt
deleted file mode 100644
index 8c0fec2ded..0000000000
--- a/docs/generic_views.txt
+++ /dev/null
@@ -1,1273 +0,0 @@
-=============
-Generic views
-=============
-
-Writing Web applications can be monotonous, because we repeat certain patterns
-again and again. In Django, the most common of these patterns have been
-abstracted into "generic views" that let you quickly provide common views of
-an object without actually needing to write any Python code.
-
-Django's generic views contain the following:
-
-    * A set of views for doing list/detail interfaces (for example,
-      Django's `documentation index`_ and `detail pages`_).
-
-    * A set of views for year/month/day archive pages and associated
-      detail and "latest" pages (for example, the Django weblog's year_,
-      month_, day_, detail_, and latest_ pages).
-
-    * A set of views for creating, editing, and deleting objects.
-
-.. _`documentation index`: http://www.djangoproject.com/documentation/
-.. _`detail pages`: http://www.djangoproject.com/documentation/faq/
-.. _year: http://www.djangoproject.com/weblog/2005/
-.. _month: http://www.djangoproject.com/weblog/2005/jul/
-.. _day: http://www.djangoproject.com/weblog/2005/jul/20/
-.. _detail: http://www.djangoproject.com/weblog/2005/jul/20/autoreload/
-.. _latest: http://www.djangoproject.com/weblog/
-
-All of these views are used by creating configuration dictionaries in
-your URLconf files and passing those dictionaries as the third member of the
-URLconf tuple for a given pattern. For example, here's the URLconf for the
-simple weblog app that drives the blog on djangoproject.com::
-
-    from django.conf.urls.defaults import *
-    from django_website.apps.blog.models import Entry
-
-    info_dict = {
-        'queryset': Entry.objects.all(),
-        'date_field': 'pub_date',
-    }
-
-    urlpatterns = patterns('django.views.generic.date_based',
-       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', info_dict),
-       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$',               'archive_day',   info_dict),
-       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$',                                'archive_month', info_dict),
-       (r'^(?P<year>\d{4})/$',                                                    'archive_year',  info_dict),
-       (r'^$',                                                                    'archive_index', info_dict),
-    )
-
-As you can see, this URLconf defines a few options in ``info_dict``.
-``'queryset'`` gives the generic view a ``QuerySet`` of objects to use (in this
-case, all of the ``Entry`` objects) and tells the generic view which model is
-being used.
-
-Documentation of each generic view follows, along with a list of all keyword
-arguments that a generic view expects. Remember that as in the example above,
-arguments may either come from the URL pattern (as ``month``, ``day``,
-``year``, etc. do above) or from the additional-information dictionary (as for
-``queryset``, ``date_field``, etc.).
-
-Most generic views require the ``queryset`` key, which is a ``QuerySet``
-instance; see the `database API docs`_ for more information about ``Queryset``
-objects.
-
-Most views also take an optional ``extra_context`` dictionary that you can use
-to pass any auxiliary information you wish to the view. The values in the
-``extra_context`` dictionary can be either functions (or other callables) or
-other objects. Functions are evaluated just before they are passed to the
-template. However, note that QuerySets retrieve and cache their data when they
-are first evaluated, so if you want to pass in a QuerySet via
-``extra_context`` that is always fresh you need to wrap it in a function or
-lambda that returns the QuerySet.
-
-.. _database API docs: ../db-api/
-
-"Simple" generic views
-======================
-
-The ``django.views.generic.simple`` module contains simple views to handle a
-couple of common cases: rendering a template when no view logic is needed,
-and issuing a redirect.
-
-``django.views.generic.simple.direct_to_template``
---------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-Renders a given template, passing it a ``{{ params }}`` template variable,
-which is a dictionary of the parameters captured in the URL.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``template``
-    The full name of a template to use.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-**Example:**
-
-Given the following URL patterns::
-
-    urlpatterns = patterns('django.views.generic.simple',
-        (r'^foo/$',             'direct_to_template', {'template': 'foo_index.html'}),
-        (r'^foo/(?P<id>\d+)/$', 'direct_to_template', {'template': 'foo_detail.html'}),
-    )
-
-... a request to ``/foo/`` would render the template ``foo_index.html``, and a
-request to ``/foo/15/`` would render the ``foo_detail.html`` with a context
-variable ``{{ params.id }}`` that is set to ``15``.
-
-``django.views.generic.simple.redirect_to``
--------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-Redirects to a given URL.
-
-The given URL may contain dictionary-style string formatting, which will be
-interpolated against the parameters captured in the URL.
-
-If the given URL is ``None``, Django will return an ``HttpResponseGone`` (410).
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``url``
-    The URL to redirect to, as a string. Or ``None`` to raise a 410 (Gone)
-    HTTP error.
-
-**Example:**
-
-This example redirects from ``/foo/<id>/`` to ``/bar/<id>/``::
-
-    urlpatterns = patterns('django.views.generic.simple',
-        ('^foo/(?P<id>\d+)/$', 'redirect_to', {'url': '/bar/%(id)s/'}),
-    )
-
-This example returns a 410 HTTP error for requests to ``/bar/``::
-
-    urlpatterns = patterns('django.views.generic.simple',
-        ('^bar/$', 'redirect_to', {'url': None}),
-    )
-
-Date-based generic views
-========================
-
-Date-based generic views (in the module ``django.views.generic.date_based``)
-are views for displaying drilldown pages for date-based data.
-
-``django.views.generic.date_based.archive_index``
--------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A top-level index page showing the "latest" objects, by date. Objects with
-a date in the *future* are not included unless you set ``allow_future`` to
-``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``queryset``
-    A ``QuerySet`` of objects for which the archive serves.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the date-based archive should use to determine the objects on
-    the page.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``num_latest``
-    The number of latest objects to send to the template context. By default,
-    it's 15.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``True``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-``template_object_name`` (**New in Django development version**)
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'latest'``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_archive.html`` by default, where:
-
-    * ``<model_name>`` is your model's name in all lowercase. For a model
-      ``StaffMember``, that'd be ``staffmember``.
-
-    * ``<app_label>`` is the right-most part of the full Python path to
-      your model's app. For example, if your model lives in
-      ``apps/blog/models.py``, that'd be ``blog``.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``date_list``
-    A list of ``datetime.date`` objects representing all years that have
-    objects available according to ``queryset``. These are ordered in reverse.
-    This is equivalent to ``queryset.dates(date_field, 'year')[::-1]``.
-
-``latest``
-    The ``num_latest`` objects in the system, ordered descending by
-    ``date_field``. For example, if ``num_latest`` is ``10``, then ``latest``
-    will be a list of the latest 10 objects in ``queryset``.
-
-    **New in Django development version:** This variable's name depends on the
-    ``template_object_name`` parameter, which is ``'latest'`` by default.
-    If ``template_object_name`` is ``'foo'``, this variable's name will be
-    ``foo``.
-
-.. _RequestContext docs: ../templates_python/#subclassing-context-requestcontext
-
-``django.views.generic.date_based.archive_year``
-------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A yearly archive page showing all available months in a given year. Objects
-with a date in the *future* are not displayed unless you set ``allow_future``
-to ``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``year``
-    The four-digit year for which the archive serves.
-
-``queryset``
-    A ``QuerySet`` of objects for which the archive serves.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the date-based archive should use to determine the objects on
-    the page.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``False``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``. The view will append ``'_list'``
-    to the value of this parameter in determining the variable's name.
-
-``make_object_list``
-    A boolean specifying whether to retrieve the full  list of objects for this
-    year and pass those to the template. If ``True``, this list of objects will
-    be made available to the template as ``object_list``. (The name
-    ``object_list`` may be different; see the docs for ``object_list`` in the
-    "Template context" section below.) By default, this is ``False``.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_archive_year.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``date_list``
-    A list of ``datetime.date`` objects representing all months that have
-    objects available in the given year, according to ``queryset``, in
-    ascending order.
-
-``year``
-    The given year, as a four-character string.
-
-``object_list``
-    If the ``make_object_list`` parameter is ``True``, this will be set to a
-    list of objects available for the given year, ordered by the date field.
-    This variable's name depends on the ``template_object_name`` parameter,
-    which is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
-    this variable's name will be ``foo_list``.
-
-    If ``make_object_list`` is ``False``, ``object_list`` will be passed to the
-    template as an empty list.
-
-``django.views.generic.date_based.archive_month``
--------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A monthly archive page showing all objects in a given month. Objects with a
-date in the *future* are not displayed unless you set ``allow_future`` to
-``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``year``
-    The four-digit year for which the archive serves (a string).
-
-``month``
-    The month for which the archive serves, formatted according to the
-    ``month_format`` argument.
-
-``queryset``
-    A ``QuerySet`` of objects for which the archive serves.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the date-based archive should use to determine the objects on
-    the page.
-
-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"``.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``False``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``. The view will append ``'_list'``
-    to the value of this parameter in determining the variable's name.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_archive_month.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``month``
-    A ``datetime.date`` object representing the given month.
-
-``next_month``
-    A ``datetime.date`` object representing the first day of the next month. If
-     the next month is in the future, this will be ``None``.
-
-``previous_month``
-    A ``datetime.date`` object representing the first day of the previous
-    month. Unlike ``next_month``, this will never be ``None``.
-
-``object_list``
-    A list of objects available for the given month. This variable's name
-    depends on the ``template_object_name`` parameter, which is ``'object'`` by
-    default. If ``template_object_name`` is ``'foo'``, this variable's name
-    will be ``foo_list``.
-
-.. _strftime docs: http://www.python.org/doc/current/lib/module-time.html#l2h-1941
-
-``django.views.generic.date_based.archive_week``
-------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A weekly archive page showing all objects in a given week. Objects with a date
-in the *future* are not displayed unless you set ``allow_future`` to ``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``year``
-    The four-digit year for which the archive serves (a string).
-
-``week``
-    The week of the year for which the archive serves (a string). Weeks start
-    with Sunday.
-
-``queryset``
-    A ``QuerySet`` of objects for which the archive serves.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the date-based archive should use to determine the objects on
-    the page.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``True``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``. The view will append ``'_list'``
-    to the value of this parameter in determining the variable's name.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_archive_week.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``week``
-    A ``datetime.date`` object representing the first day of the given week.
-
-``object_list``
-    A list of objects available for the given week. This variable's name
-    depends on the ``template_object_name`` parameter, which is ``'object'`` by
-    default. If ``template_object_name`` is ``'foo'``, this variable's name
-    will be ``foo_list``.
-
-``django.views.generic.date_based.archive_day``
------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A day archive page showing all objects in a given day. Days in the future throw
-a 404 error, regardless of whether any objects exist for future days, unless
-you set ``allow_future`` to ``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``year``
-    The four-digit year for which the archive serves (a string).
-
-``month``
-    The month for which the archive serves, formatted according to the
-    ``month_format`` argument.
-
-``day``
-    The day for which the archive serves, formatted according to the
-    ``day_format`` argument.
-
-``queryset``
-    A ``QuerySet`` of objects for which the archive serves.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the date-based archive should use to determine the objects on
-    the page.
-
-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"``.
-
-``day_format``
-    Like ``month_format``, but for the ``day`` parameter. It defaults to
-    ``"%d"`` (day of the month as a decimal number, 01-31).
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``False``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-     Designates the name of the template variable to use in the template
-     context. By default, this is ``'object'``. The view will append
-     ``'_list'`` to the value of this parameter in determining the variable's
-     name.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_archive_day.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``day``
-    A ``datetime.date`` object representing the given day.
-
-``next_day``
-    A ``datetime.date`` object representing the next day. If the next day is in
-    the future, this will be ``None``.
-
-``previous_day``
-    A ``datetime.date`` object representing the given day. Unlike ``next_day``,
-    this will never be ``None``.
-
-``object_list``
-    A list of objects available for the given day. This variable's name depends
-    on the ``template_object_name`` parameter, which is ``'object'`` by
-    default. If ``template_object_name`` is ``'foo'``, this variable's name
-    will be ``foo_list``.
-
-``django.views.generic.date_based.archive_today``
--------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A day archive page showing all objects for *today*. This is exactly the same as
-``archive_day``, except the ``year``/``month``/``day`` arguments are not used,
-and today's date is used instead.
-
-``django.views.generic.date_based.object_detail``
--------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A page representing an individual object. If the object has a date value in the
-future, the view will throw a 404 error by default, unless you set
-``allow_future`` to ``True``.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``year``
-    The object's four-digit year (a string).
-
-``month``
-    The object's month , formatted according to the ``month_format`` argument.
-
-``day``
-    The object's day , formatted according to the ``day_format`` argument.
-
-``queryset``
-    A ``QuerySet`` that contains the object.
-
-``date_field``
-    The name of the ``DateField`` or ``DateTimeField`` in the ``QuerySet``'s
-    model that the generic view should use to look up the object according to
-    ``year``, ``month`` and ``day``.
-
-Either ``object_id`` or (``slug`` *and* ``slug_field``) is required.
-    If you provide ``object_id``, it should be the value of the primary-key
-    field for the object being displayed on this page.
-
-    Otherwise, ``slug`` should be the slug of the given object, and
-    ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
-    model. By default, ``slug_field`` is ``'slug'``.
-
-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"``.
-
-``day_format``
-    Like ``month_format``, but for the ``day`` parameter. It defaults to
-    ``"%d"`` (day of the month as a decimal number, 01-31).
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_name_field``
-    The name of a field on the object whose value is the template name to use.
-    This lets you store template names in the data. In other words, if your
-    object has a field ``'the_template'`` that contains a string
-    ``'foo.html'``, and you set ``template_name_field`` to ``'the_template'``,
-    then the generic view for this object will use the template ``'foo.html'``.
-
-    It's a bit of a brain-bender, but it's useful in some cases.
-
-``template_loader``
-    The template loader to use when loading the  template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-``allow_future``
-    A boolean specifying whether to include "future" objects on this page,
-    where "future" means objects in which the field specified in ``date_field``
-    is greater than the current date/time. By default, this is ``False``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_detail.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``object``
-    The object. This variable's name depends on the ``template_object_name``
-    parameter, which is ``'object'`` by default. If ``template_object_name`` is
-    ``'foo'``, this variable's name will be ``foo``.
-
-List/detail generic views
-=========================
-
-The list-detail generic-view framework (in the
-``django.views.generic.list_detail`` module) is similar to the date-based one,
-except the former simply has two views: a list of objects and an individual
-object page.
-
-``django.views.generic.list_detail.object_list``
-------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A page representing a list of objects.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``queryset``
-    A ``QuerySet`` that represents the objects.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``paginate_by``
-    An integer specifying how many objects should be displayed per page. If
-    this is given, the view will paginate objects with ``paginate_by`` objects
-    per page. The view will expect either a ``page`` query string parameter
-    (via ``GET``) or a ``page`` variable specified in the URLconf. See `Notes
-    on pagination`_ below.
-
-``page``
-    The current (1-based) page number, as an integer, or the string ``'last'``.
-    See `Notes on pagination`_ below.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``allow_empty``
-    A boolean specifying whether to display the page if no objects are
-    available. If this is ``False`` and no objects are available, the view will
-    raise a 404 instead of displaying an empty page. By default, this is
-    ``True``.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``. The view will append ``'_list'``
-    to the value of this parameter in determining the variable's name.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_list.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``object_list``
-    The list of objects. This variable's name depends on the
-    ``template_object_name`` parameter, which is ``'object'`` by default. If
-    ``template_object_name`` is ``'foo'``, this variable's name will be
-    ``foo_list``.
-
-``is_paginated``
-    A boolean representing whether the results are paginated. Specifically,
-    this is set to ``False`` if the number of available objects is less than or
-    equal to ``paginate_by``.
-
-If the results are paginated, the context will contain these extra variables:
-
-``paginator`` (**New in Django development version**)
-    An instance of ``django.core.paginator.Paginator``.
-
-``page_obj`` (**New in Django development version**)
-    An instance of ``django.core.paginator.Page``.
-
-See the `pagination documentation`_ for more information on the ``Paginator``
-and ``Page`` objects.
-
-Notes on pagination
-~~~~~~~~~~~~~~~~~~~
-
-If ``paginate_by`` is specified, Django will paginate the results. You can
-specify the page number in the URL in one of two ways:
-
-    * Use the ``page`` parameter in the URLconf. For example, this is what
-      your URLconf might look like::
-
-        (r'^objects/page(?P<page>[0-9]+)/$', 'object_list', dict(info_dict))
-
-    * Pass the page number via the ``page`` query-string parameter. For
-      example, a URL would look like this::
-
-        /objects/?page=3
-
-    * To loop over all the available page numbers, use the ``page_range``
-      variable. You can iterate over the list provided by ``page_range``
-      to create a link to every page of results.
-
-These values and lists are 1-based, not 0-based, so the first page would be
-represented as page ``1``.
-
-For more on pagination, read the `pagination documentation`_.
-
-.. _`pagination documentation`: ../pagination/
-
-**New in Django development version:**
-
-As a special case, you are also permitted to use ``last`` as a value for
-``page``::
-
-    /objects/?page=last
-
-This allows you to access the final page of results without first having to
-determine how many pages there are.
-
-Note that ``page`` *must* be either a valid page number or the value ``last``;
-any other value for ``page`` will result in a 404 error.
-
-``django.views.generic.list_detail.object_detail``
---------------------------------------------------
-
-A page representing an individual object.
-
-Description
-~~~~~~~~~~~
-
-A page representing an individual object.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``queryset``
-    A ``QuerySet`` that contains the object.
-
-Either ``object_id`` or (``slug`` *and* ``slug_field``)
-    If you provide ``object_id``, it should be the value of the primary-key
-    field for the object being displayed on this page.
-
-    Otherwise, ``slug`` should be the slug of the given object, and
-    ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
-    model. By default, ``slug_field`` is ``'slug'``.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_name_field``
-    The name of a field on the object whose value is the template name to use.
-    This lets you store template names in the data. In other words, if your
-    object has a field ``'the_template'`` that contains a string
-    ``'foo.html'``, and you set ``template_name_field`` to ``'the_template'``,
-    then the generic view for this object will use the template ``'foo.html'``.
-
-    It's a bit of a brain-bender, but it's useful in some cases.
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``.
-
-``mimetype``
-    The MIME type to use for the resulting document. Defaults to the value of
-    the ``DEFAULT_CONTENT_TYPE`` setting.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_detail.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``object``
-    The object. This variable's name depends on the ``template_object_name``
-    parameter, which is ``'object'`` by default. If ``template_object_name`` is
-    ``'foo'``, this variable's name will be ``foo``.
-
-Create/update/delete generic views
-==================================
-
-The ``django.views.generic.create_update`` module contains a set of functions
-for creating, editing and deleting objects.
-
-**Changed in Django development version:**
-
-``django.views.generic.create_update.create_object`` and
-``django.views.generic.create_update.update_object`` now use the new `forms
-library`_ to build and display the form.
-
-.. _forms library: ../forms/
-
-``django.views.generic.create_update.create_object``
-----------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A page that displays a form for creating an object, redisplaying the form with
-validation errors (if there are any) and saving the object.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-Either ``form_class`` or ``model``
-    If you provide ``form_class``, it should be a ``django.forms.ModelForm``
-    subclass.  Use this argument when you need to customize the model's form.
-    See the `ModelForm docs`_ for more information.
-
-    Otherwise, ``model`` should be a Django model class and the form used will
-    be a standard ``ModelForm`` for ``model``.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``post_save_redirect``
-    A URL to which the view will redirect after saving the object. By default,
-    it's ``object.get_absolute_url()``.
-
-    ``post_save_redirect`` may contain dictionary string formatting, which will
-    be interpolated against the object's field attributes. For example, you
-    could use ``post_save_redirect="/polls/%(slug)s/"``.
-
-``login_required``
-    A boolean that designates whether a user must be logged in, in order to see
-    the page and save changes. This hooks into the Django `authentication
-    system`_. By default, this is ``False``.
-
-    If this is ``True``, and a non-logged-in user attempts to visit this page
-    or save the form, Django will redirect the request to ``/accounts/login/``.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_form.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``form``
-    A ``django.forms.ModelForm`` instance representing the form for creating
-    the object. This lets you refer to form fields easily in the template
-    system.
-
-    For example, if the model has two fields, ``name`` and ``address``::
-
-        <form action="" method="post">
-        <p>{{ form.name.label_tag }} {{ form.name }}</p>
-        <p>{{ form.address.label_tag }} {{ form.address }}</p>
-        </form>
-
-    See the `forms documentation`_ for more information about using ``Form``
-    objects in templates.
-
-.. _authentication system: ../authentication/
-.. _ModelForm docs: ../modelforms/
-.. _forms documentation: ../forms/
-
-``django.views.generic.create_update.update_object``
-----------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A page that displays a form for editing an existing object, redisplaying the
-form with validation errors (if there are any) and saving changes to the
-object. This uses a form automatically generated from the object's
-model class.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-Either ``form_class`` or ``model``
-    If you provide ``form_class``, it should be a ``django.forms.ModelForm``
-    subclass.  Use this argument when you need to customize the model's form.
-    See the `ModelForm docs`_ for more information.
-
-    Otherwise, ``model`` should be a Django model class and the form used will
-    be a standard ``ModelForm`` for ``model``.
-
-Either ``object_id`` or (``slug`` *and* ``slug_field``)
-    If you provide ``object_id``, it should be the value of the primary-key
-    field for the object being displayed on this page.
-
-    Otherwise, ``slug`` should be the slug of the given object, and
-    ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
-    model. By default, ``slug_field`` is ``'slug'``.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``post_save_redirect``
-    A URL to which the view will redirect after saving the object. By default,
-    it's ``object.get_absolute_url()``.
-
-    ``post_save_redirect`` may contain dictionary string formatting, which will
-    be interpolated against the object's field attributes. For example, you
-    could use ``post_save_redirect="/polls/%(slug)s/"``.
-
-``login_required``
-    A boolean that designates whether a user must be logged in, in order to see
-    the page and save changes. This hooks into the Django `authentication
-    system`_. By default, this is ``False``.
-
-    If this is ``True``, and a non-logged-in user attempts to visit this page
-    or save the form, Django will redirect the request to ``/accounts/login/``.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``context_processors``: A list of template-context processors to apply to
-      the view's template. See the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_form.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``form``
-    A ``django.forms.ModelForm`` instance representing the form for editing the
-    object. This lets you refer to form fields easily in the template system.
-
-    For example, if the model has two fields, ``name`` and ``address``::
-
-        <form action="" method="post">
-        <p>{{ form.name.label_tag }} {{ form.name }}</p>
-        <p>{{ form.address.label_tag }} {{ form.address }}</p>
-        </form>
-
-    See the `forms documentation`_ for more information about using ``Form``
-    objects in templates.
-
-``object``
-    The original object being edited. This variable's name depends on the
-    ``template_object_name`` parameter, which is ``'object'`` by default. If
-    ``template_object_name`` is ``'foo'``, this variable's name will be
-    ``foo``.
-
-``django.views.generic.create_update.delete_object``
-----------------------------------------------------
-
-Description
-~~~~~~~~~~~
-
-A view that displays a confirmation page and deletes an existing object. The
-given object will only be deleted if the request method is ``POST``. If this
-view is fetched via ``GET``, it will display a confirmation page that should
-contain a form that POSTs to the same URL.
-
-Required arguments
-~~~~~~~~~~~~~~~~~~
-
-``model``
-    The Django model class of the object that the form will create.
-
-Either ``object_id`` or (``slug`` *and* ``slug_field``)
-    If you provide ``object_id``, it should be the value of the primary-key
-    field for the object being displayed on this page.
-
-    Otherwise, ``slug`` should be the slug of the given object, and
-    ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
-    model. By default, ``slug_field`` is ``'slug'``.
-
-``post_delete_redirect``
-    A URL to which the view will redirect after deleting the object.
-
-Optional arguments
-~~~~~~~~~~~~~~~~~~
-
-``login_required``
-    A boolean that designates whether a user must be logged in, in order to see
-    the page and save changes. This hooks into the Django `authentication
-    system`_. By default, this is ``False``.
-
-    If this is ``True``, and a non-logged-in user attempts to visit this page
-    or save the form, Django will redirect the request to ``/accounts/login/``.
-
-``template_name``
-    The full name of a template to use in rendering the page. This lets you
-    override the default template name (see below).
-
-``template_loader``
-    The template loader to use when loading the template. By default, it's
-    ``django.template.loader``.
-
-``extra_context``
-    A dictionary of values to add to the template context. By default, this is
-    an empty dictionary. If a value in the dictionary is callable, the generic
-    view will call it just before rendering the template.
-
-``context_processors``
-    A list of template-context processors to apply to the view's template. See
-    the `RequestContext docs`_.
-
-``template_object_name``
-    Designates the name of the template variable to use in the template
-    context. By default, this is ``'object'``.
-
-Template name
-~~~~~~~~~~~~~
-
-If ``template_name`` isn't specified, this view will use the template
-``<app_label>/<model_name>_confirm_delete.html`` by default.
-
-Template context
-~~~~~~~~~~~~~~~~
-
-In addition to ``extra_context``, the template's context will be:
-
-``object``
-    The original object that's about to be deleted. This variable's name
-    depends on the ``template_object_name`` parameter, which is ``'object'`` by
-    default. If ``template_object_name`` is ``'foo'``, this variable's name
-    will be ``foo``.
diff --git a/docs/glossary.txt b/docs/glossary.txt
new file mode 100644
index 0000000000..c67c522ef7
--- /dev/null
+++ b/docs/glossary.txt
@@ -0,0 +1,80 @@
+.. _glossary:
+
+========
+Glossary
+========
+
+.. glossary::
+
+    field
+        An attribute on a :term:`model`; a given field usually maps directly to
+        a single database column.
+        
+        See :ref:`topics-db-models`.
+
+    generic view
+        A higher-order :term:`view` function that abstracts common idioms and patterns
+        found in view development and abstracts them.
+        
+        See :ref:`ref-generic-views`.
+
+    model
+        Models store your application's data.
+        
+        See :ref:`topics-db-models`.
+
+    MTV
+        See :ref:`mtv`.
+
+    MVC
+        `Model-view-controller`__; a software pattern. Django :ref:`follows MVC
+        to some extent <mtv>`.
+
+        __ http://en.wikipedia.org/wiki/Model-view-controller
+
+    project
+        A Python package -- i.e. a directory of code -- that contains all the
+        settings for an instance of Django. This would include database
+        configuration, Django-specific options and application-specific
+        settings.
+
+    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
+            could only do this by overriding ``__getattr__`` and
+            ``__setattr__``; but overriding ``__setattr__`` slows down all
+            attribute assignments considerably, and overriding ``__getattr__``
+            is always a bit tricky to get right. Properties let you do this
+            painlessly, without having to override ``__getattr__`` or
+            ``__setattr__``.
+
+        __ http://www.python.org/download/releases/2.2/descrintro/#property
+
+    queryset
+        An object representing some set of rows to be fetched from the database.
+        
+        See :ref:`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 separates the presentation of a document from its
+        data.
+        
+        See :ref:`topics-templates`.
+        
+    view
+        A function responsible for rending a page.
\ No newline at end of file
diff --git a/docs/apache_auth.txt b/docs/howto/apache-auth.txt
similarity index 91%
rename from docs/apache_auth.txt
rename to docs/howto/apache-auth.txt
index 62fd191896..585e5b32c4 100644
--- a/docs/apache_auth.txt
+++ b/docs/howto/apache-auth.txt
@@ -1,10 +1,13 @@
+.. _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
-`authentication system`_ directly.  For example, you could:
+:ref:`authentication system <topics-auth>` directly. For example, you
+could:
 
     * Serve static/media files directly from Apache only to authenticated users.
 
@@ -13,12 +16,17 @@ dealing with Apache, you can configuring Apache to authenticate against Django's
 
     * Allow certain users to connect to a WebDAV share created with mod_dav_.
 
+.. _Subversion: http://subversion.tigris.org/
+.. _mod_dav: http://httpd.apache.org/docs/2.0/mod/mod_dav.html
+
 Configuring Apache
 ==================
 
 To check against Django's authorization database from a Apache configuration
 file, you'll need to use mod_python's ``PythonAuthenHandler`` directive along
-with the standard ``Auth*`` and ``Require`` directives::
+with the standard ``Auth*`` and ``Require`` directives:
+
+.. code-block:: apache
 
     <Location /example/>
         AuthType Basic
@@ -43,6 +51,8 @@ with the standard ``Auth*`` and ``Require`` directives::
     the ``AuthUserFile`` directive and pointing it to ``/dev/null``. Depending
     on which other authentication modules you have loaded, you might need one
     or more of the following directives::
+    
+    .. code-block:: apache
 
         AuthBasicAuthoritative Off
         AuthDefaultAuthoritative Off
@@ -94,8 +104,9 @@ location to users marked as staff members.  You can use a set of
                                       Defaults to ``off``.
 
     ``DjangoPermissionName``          The name of a permission to require for
-                                      access. See `custom permissions`_ for
-                                      more information.
+                                      access. See :ref:`custom permissions
+                                      <custom-permissions>` for more
+                                      information.
 
                                       By default no specific permission will be
                                       required.
@@ -109,8 +120,3 @@ are equivalent::
 
     SetEnv DJANGO_SETTINGS_MODULE mysite.settings
     PythonOption DJANGO_SETTINGS_MODULE mysite.settings
-
-.. _authentication system: ../authentication/
-.. _Subversion: http://subversion.tigris.org/
-.. _mod_dav: http://httpd.apache.org/docs/2.0/mod/mod_dav.html
-.. _custom permissions: ../authentication/#custom-permissions
diff --git a/docs/howto/custom-file-storage.txt b/docs/howto/custom-file-storage.txt
new file mode 100644
index 0000000000..c5f6b740a8
--- /dev/null
+++ b/docs/howto/custom-file-storage.txt
@@ -0,0 +1,78 @@
+.. _howto-custom-file-storage:
+
+Writing a custom storage system
+===============================
+
+If you need to provide custom file storage -- a common example is storing files
+on some remote system -- you can do so by defining a custom storage class.
+You'll need to follow these steps:
+
+#. Your custom storage system must be a subclass of
+   ``django.core.files.storage.Storage``::
+
+        from django.core.files.storage import Storage
+
+        class MyStorage(Storage):
+            ...
+
+#. Django must be able to instantiate your storage system without any arguments.
+   This means that any settings should be taken from ``django.conf.settings``::
+
+        from django.conf import settings
+        from django.core.files.storage import Storage
+
+        class MyStorage(Storage):
+            def __init__(self, option=None):
+                if not option:
+                    option = settings.CUSTOM_STORAGE_OPTIONS
+                ...
+
+#. Your storage class must implement the ``_open()`` and ``_save()`` methods,
+   along with any other methods appropriate to your storage class. See below for
+   more on these methods.
+
+   In addition, if your class provides local file storage, it must override
+   the ``path()`` method.
+
+Your custom storage system may override any of the storage methods explained in
+:ref:`ref-files-storage`. However, it's usually better to use the hooks
+specifically designed for custom storage objects. These are:
+
+``_open(name, mode='rb')``
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**Required**.
+
+Called by ``Storage.open()``, this is the actual mechanism the storage class
+uses to open the file. This must return a ``File`` object, though in most cases,
+you'll want to return some subclass here that implements logic specific to the
+backend storage system.
+
+``_save(name, content)``
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+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. No return value is expected.
+
+``get_valid_name(name)``
+------------------------
+
+Returns a filename suitable for use with the underlying storage system. The
+``name`` argument passed to this method is the original filename sent to the
+server, after having any path information removed. Override this to customize
+how non-standard characters are converted to safe filenames.
+
+The code provided on ``Storage`` retains only alpha-numeric characters, periods
+and underscores from the original filename, removing everything else.
+
+``get_available_name(name)``
+----------------------------
+
+Returns a filename that is available in the storage mechanism, possibly taking
+the provided filename into account. The ``name`` argument passed to this method
+will have already cleaned to a filename valid for the storage system, according
+to the ``get_valid_name()`` method described above.
+
+The code provided on ``Storage`` simply appends underscores to the filename
+until it finds one that's available in the destination directory.
diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt
new file mode 100644
index 0000000000..00f656b92e
--- /dev/null
+++ b/docs/howto/custom-management-commands.txt
@@ -0,0 +1,33 @@
+.. _howto-custom-management-commands:
+
+Writing custom django-admin commands
+====================================
+
+**New in Django development version**
+
+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.
+
+To do this, just add a ``management/commands`` directory to your application.
+Each Python module in that directory will be auto-discovered and registered as
+a command that can be executed as an action when you run ``manage.py``::
+
+    blog/
+        __init__.py
+        models.py
+        management/
+            __init__.py
+            commands/
+                __init__.py
+                explode.py
+        views.py
+
+In this example, the ``explode`` command will be made available to any project
+that includes the ``blog`` application in ``settings.INSTALLED_APPS``.
+
+The ``explode.py`` module has only one requirement -- it must define a class
+called ``Command`` that extends ``django.core.management.base.BaseCommand``.
+
+For more details on how to define your own commands, look at the code for the
+existing ``django-admin.py`` commands, in ``/django/core/management/commands``.
\ No newline at end of file
diff --git a/docs/custom_model_fields.txt b/docs/howto/custom-model-fields.txt
similarity index 65%
rename from docs/custom_model_fields.txt
rename to docs/howto/custom-model-fields.txt
index 5dec22f6e3..aa14c3cb4e 100644
--- a/docs/custom_model_fields.txt
+++ b/docs/howto/custom-model-fields.txt
@@ -1,23 +1,28 @@
-===================
-Custom model fields
-===================
+.. _howto-custom-model-fields:
+
+===========================
+Writing custom model fields
+===========================
 
 **New in Django development version**
 
 Introduction
 ============
 
-The `model reference`_ documentation explains how to use Django's standard
-field classes -- ``CharField``, ``DateField``, etc. For many purposes, those
-classes are all you'll need. Sometimes, though, the Django version won't meet
-your precise requirements, or you'll want to use a field that is entirely
-different from those shipped with Django.
+The :ref:`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
+requirements, or you'll want to use a field that is entirely different from
+those shipped with Django.
 
 Django's built-in field types don't cover every possible database column type --
 only the common types, such as ``VARCHAR`` and ``INTEGER``. For more obscure
 column types, such as geographic polygons or even user-created types such as
 `PostgreSQL custom types`_, you can define your own Django ``Field`` subclasses.
 
+.. _PostgreSQL custom types: http://www.postgresql.org/docs/8.2/interactive/sql-createtype.html
+
 Alternatively, you may have a complex Python object that can somehow be
 serialized to fit into a standard database column type. This is another case
 where a ``Field`` subclass will help you use your object with your models.
@@ -40,9 +45,11 @@ Our class looks something like this::
             self.east = east
             self.south = south
             self.west = west
-
+        
         # ... (other possibly useful methods omitted) ...
 
+.. _Bridge: http://en.wikipedia.org/wiki/Contract_bridge
+
 This is just an ordinary Python class, with nothing Django-specific about it.
 We'd like to be able to do things like this in our models (we assume the
 ``hand`` attribute on the model is an instance of ``Hand``)::
@@ -68,10 +75,6 @@ model support for existing classes where you cannot change the source code.
     strings, or floats, for example. This case is similar to our ``Hand``
     example and we'll note any differences as we go along.
 
-.. _model reference: ../model_api/
-.. _PostgreSQL custom types: http://www.postgresql.org/docs/8.2/interactive/sql-createtype.html
-.. _Bridge: http://en.wikipedia.org/wiki/Contract_bridge
-
 Background theory
 =================
 
@@ -103,15 +106,13 @@ 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 `form fields`_) are subclasses of
-``django.db.models.Field``. Most of the information that Django records about a
-field is common to all fields -- name, help text, validator lists, uniqueness
-and so forth. Storing all that information is handled by ``Field``. We'll get
-into the precise details of what ``Field`` can do later on; for now, suffice it
-to say that everything descends from ``Field`` and then customizes key pieces
-of the class behavior.
-
-.. _form fields: ../forms/#fields
+mean model fields and not :ref:`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, validator lists,
+uniqueness and so forth. Storing all that information is handled by ``Field``.
+We'll get into the precise details of what ``Field`` can do later on; for now,
+suffice it to say that everything descends from ``Field`` and then customizes
+key pieces of the class behavior.
 
 It's important to realize that a Django field class is not what is stored in
 your model attributes. The model attributes contain normal Python objects. The
@@ -120,7 +121,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 serializer.
+database or sent to the :ref:`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
@@ -139,22 +140,25 @@ classes when you want a custom field:
       how to convert your first class back and forth between its permanent
       storage form and the Python form.
 
-Writing a ``Field`` subclass
-=============================
+Writing a field subclass
+========================
 
-When planning your ``Field`` subclass, first give some thought to which
-existing ``Field`` class your new field is most similar to. Can you subclass an
-existing Django field and save yourself some work? If not, you should subclass
-the ``Field`` class, from which everything is descended.
+When planning your :class:`~django.db.models.Field` subclass, first give some
+thought to which existing :class:`~django.db.models.Field` class your new field
+is most similar to. Can you subclass an existing Django field and save yourself
+some work? If not, you should subclass the :class:`~django.db.models.Field`
+class, from which everything is descended.
 
-Initializing your new field is a matter of separating out any arguments that
-are specific to your case from the common arguments and passing the latter to
-the ``__init__()`` method of ``Field`` (or your parent class).
+Initializing your new field is a matter of separating out any arguments that are
+specific to your case from the common arguments and passing the latter to the
+:meth:`~django.db.models.Field.__init__` method of
+:class:`~django.db.models.Field` (or your parent class).
 
 In our example, we'll call our field ``HandField``. (It's a good idea to call
-your ``Field`` subclass ``(Something)Field``, so it's easily identifiable as a
-``Field`` subclass.) It doesn't behave like any existing field, so we'll
-subclass directly from ``Field``::
+your :class:`~django.db.models.Field` subclass ``<Something>Field``, so it's
+easily identifiable as a :class:`~django.db.models.Field` subclass.) It doesn't
+behave like any existing field, so we'll subclass directly from
+:class:`~django.db.models.Field`::
 
     from django.db import models
 
@@ -169,10 +173,13 @@ card values plus their suits; 104 characters in total.
 
 .. note::
     Many of Django's model fields accept options that they don't do anything
-    with. For example, you can pass both ``editable`` and ``auto_now`` to a
-    ``DateField`` and it will simply ignore the ``editable`` parameter
-    (``auto_now`` being set implies ``editable=False``). No error is raised in
-    this case.
+    with. For example, you can pass both
+    :attr:`~django.db.models.Field.editable` and
+    :attr:`~django.db.models.Field.auto_now` to a
+    :class:`django.db.models.DateField` and it will simply ignore the
+    :attr:`~django.db.models.Field.editable` parameter
+    (:attr:`~django.db.models.Field.auto_now` being set implies
+    ``editable=False``). No error is raised in this case.
 
     This behavior simplifies the field classes, because they don't need to
     check for options that aren't necessary. They just pass all the options to
@@ -180,41 +187,42 @@ card values plus their suits; 104 characters in total.
     you want your fields to be more strict about the options they select, or
     to use the simpler, more permissive behavior of the current fields.
 
-The ``Field.__init__()`` method takes the following parameters, in this
-order:
+The :meth:`~django.db.models.Field.__init__` method takes the following
+parameters:
 
-    * ``verbose_name``
-    * ``name``
-    * ``primary_key``
-    * ``max_length``
-    * ``unique``
-    * ``blank``
-    * ``null``
-    * ``db_index``
-    * ``core``
-    * ``rel``: Used for related fields (like ``ForeignKey``). For advanced use
-      only.
-    * ``default``
-    * ``editable``
-    * ``serialize``: If ``False``, the field will not be serialized when the
-      model is passed to Django's serializers_. Defaults to ``True``.
-    * ``prepopulate_from``
-    * ``unique_for_date``
-    * ``unique_for_month``
-    * ``unique_for_year``
-    * ``validator_list``
-    * ``choices``
-    * ``help_text``
-    * ``db_column``
-    * ``db_tablespace``: Currently only used with the Oracle backend and only
-      for index creation. You can usually ignore this option.
+    * :attr:`~django.db.models.Field.verbose_name`
+    * :attr:`~django.db.models.Field.name`
+    * :attr:`~django.db.models.Field.primary_key`
+    * :attr:`~django.db.models.Field.max_length`
+    * :attr:`~django.db.models.Field.unique`
+    * :attr:`~django.db.models.Field.blank`
+    * :attr:`~django.db.models.Field.null`
+    * :attr:`~django.db.models.Field.db_index`
+    * :attr:`~django.db.models.Field.core`
+    * :attr:`~django.db.models.Field.rel`: Used for related fields (like
+      :attr:`~django.db.models.Field.ForeignKey`). For advanced use only.
+    * :attr:`~django.db.models.Field.default`
+    * :attr:`~django.db.models.Field.editable`
+    * :attr:`~django.db.models.Field.serialize`: If
+      :attr:`~django.db.models.Field.False`, the field will not be serialized
+      when the model is passed to Django's :ref:`serializers
+      <topics-serialization>`. Defaults to
+      :attr:`~django.db.models.Field.True`.
+    * :attr:`~django.db.models.Field.prepopulate_from`
+    * :attr:`~django.db.models.Field.unique_for_date`
+    * :attr:`~django.db.models.Field.unique_for_month`
+    * :attr:`~django.db.models.Field.unique_for_year`
+    * :attr:`~django.db.models.Field.validator_list`
+    * :attr:`~django.db.models.Field.choices`
+    * :attr:`~django.db.models.Field.help_text`
+    * :attr:`~django.db.models.Field.db_column`
+    * :attr:`~django.db.models.Field.db_tablespace`: Currently only used with
+      the Oracle backend and only for index creation. You can usually ignore
+      this option.
 
 All of the options without an explanation in the above list have the same
-meaning they do for normal Django fields. See the `model documentation`_ for
-examples and details.
-
-.. _serializers: ../serialization/
-.. _model documentation: ../model-api/
+meaning they do for normal Django fields. See the :ref:`field documentation
+<ref-models-fields>` for examples and details.
 
 The ``SubfieldBase`` metaclass
 ------------------------------
@@ -226,13 +234,16 @@ possible. If you're only working with custom database column types and your
 model fields appear in Python as standard Python types direct from the
 database backend, you don't need to worry about this section.
 
-If you're handling custom Python types, such as our ``Hand`` class, we need
-to make sure that when Django initializes an instance of our model and assigns
-a database value to our custom field attribute, we convert that value into the
+If you're handling custom Python types, such as our ``Hand`` class, we need to
+make sure that when Django initializes an instance of our model and assigns a
+database value to our custom field attribute, we convert that value into the
 appropriate Python object. The details of how this happens internally are a
 little complex, but the code you need to write in your ``Field`` class is
-simple: make sure your field subclass uses ``django.db.models.SubfieldBase`` as
-its metaclass::
+simple: make sure your field subclass uses a special metaclass:
+
+.. class:: django.db.models.SubfieldBase
+
+For example::
 
     class HandField(models.Field):
         __metaclass__ = models.SubfieldBase
@@ -240,27 +251,27 @@ its metaclass::
         def __init__(self, *args, **kwargs):
             # ...
 
-This ensures that the ``to_python()`` method, documented below_, will always be
+This ensures that the :meth:`to_python` method, documented below, will always be
 called when the attribute is initialized.
 
-.. _below: #to-python-self-value
-
 Useful methods
 --------------
 
-Once you've created your ``Field`` subclass and set up up the
-``__metaclass__``, you might consider overriding a few standard methods,
+Once you've created your :class:`~django.db.models.Field` subclass and set up up
+the ``__metaclass__``, you might consider overriding a few standard methods,
 depending on your field's behavior. The list of methods below is in
 approximately decreasing order of importance, so start from the top.
 
-``db_type(self)``
-~~~~~~~~~~~~~~~~~
+Custom database types
+~~~~~~~~~~~~~~~~~~~~~
 
-Returns the database column data type for the ``Field``, taking into account
-the current ``DATABASE_ENGINE`` setting.
+.. method:: db_type(self)
+
+Returns the database column data type for the :class:`~django.db.models.Field`,
+taking into account the current :setting:`DATABASE_ENGINE` setting.
 
 Say you've created a PostgreSQL custom type called ``mytype``. You can use this
-field with Django by subclassing ``Field`` and implementing the ``db_type()``
+field with Django by subclassing ``Field`` and implementing the :meth:`db_type`
 method, like so::
 
     from django.db import models
@@ -281,7 +292,7 @@ If you aim to build a database-agnostic application, you should account for
 differences in database column types. For example, the date/time column type
 in PostgreSQL is called ``timestamp``, while the same column in MySQL is called
 ``datetime``. The simplest way to handle this in a ``db_type()`` method is to
-import the Django settings module and check the ``DATABASE_ENGINE`` setting.
+import the Django settings module and check the :setting:`DATABASE_ENGINE` setting.
 For example::
 
     class MyDateField(models.Field):
@@ -292,11 +303,11 @@ For example::
             else:
                 return 'timestamp'
 
-The ``db_type()`` method is only called by Django when the framework constructs
-the ``CREATE TABLE`` statements for your application -- that is, when you first
-create your tables. It's not called at any other time, so it can afford to
-execute slightly complex code, such as the ``DATABASE_ENGINE`` check in the
-above example.
+The :meth:`db_type` method is only called by Django when the framework
+constructs the ``CREATE TABLE`` statements for your application -- that is, when
+you first create your tables. It's not called at any other time, so it can
+afford to execute slightly complex code, such as the :setting:`DATABASE_ENGINE`
+check in the above example.
 
 Some database column types accept parameters, such as ``CHAR(25)``, where the
 parameter ``25`` represents the maximum column length. In cases like these,
@@ -316,7 +327,7 @@ sense to have a ``CharMaxlength25Field``, shown here::
 
 The better way of doing this would be to make the parameter specifiable at run
 time -- i.e., when the class is instantiated. To do that, just implement
-``__init__()``, like so::
+:meth:`django.db.models.Field.__init__`, like so::
 
     # This is a much more flexible example.
     class BetterCharField(models.Field):
@@ -333,13 +344,15 @@ time -- i.e., when the class is instantiated. To do that, just implement
         my_field = BetterCharField(25)
 
 Finally, if your column requires truly complex SQL setup, return ``None`` from
-``db_type()``. This will cause Django's SQL creation code to skip over this
+:meth:`db_type`. This will cause Django's SQL creation code to skip over this
 field. You are then responsible for creating the column in the right table in
-some other way, of course, but this gives you a way to tell Django to get out
-of the way.
+some other way, of course, but this gives you a way to tell Django to get out of
+the way.
 
-``to_python(self, value)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+Converting database values to Python objects
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. method:: to_python(self, value)
 
 Converts a value as returned by your database (or a serializer) to a Python
 object.
@@ -348,10 +361,10 @@ The default implementation simply returns ``value``, for the common case in
 which the database backend already returns data in the correct format (as a
 Python string, for example).
 
-If your custom ``Field`` class deals with data structures that are more complex
-than strings, dates, integers or floats, then you'll need to override this
-method. As a general rule, the method should deal gracefully with any of the
-following arguments:
+If your custom :class:`~django.db.models.Field` class deals with data structures
+that are more complex than strings, dates, integers or floats, then you'll need
+to override this method. As a general rule, the method should deal gracefully
+with any of the following arguments:
 
     * An instance of the correct type (e.g., ``Hand`` in our ongoing example).
 
@@ -361,7 +374,7 @@ following arguments:
 
 In our ``HandField`` class, we're storing the data as a VARCHAR field in the
 database, so we need to be able to process strings and ``Hand`` instances in
-``to_python()``::
+:meth:`to_python`::
 
     import re
 
@@ -381,18 +394,20 @@ database, so we need to be able to process strings and ``Hand`` instances in
 Notice that we always return a ``Hand`` instance from this method. That's the
 Python object type we want to store in the model's attribute.
 
-**Remember:** If your custom field needs the ``to_python()`` method to be
+**Remember:** If your custom field needs the :meth:`to_python` method to be
 called when it is created, you should be using `The SubfieldBase metaclass`_
-mentioned earlier. Otherwise ``to_python()`` won't be called automatically.
+mentioned earlier. Otherwise :meth:`to_python` won't be called automatically.
 
-``get_db_prep_value(self, value)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Converting Python objects to database values
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-This is the reverse of ``to_python()`` when working with the database backends
+.. method:: get_db_prep_value(self, value)
+
+This is the reverse of :meth:`to_python` when working with the database backends
 (as opposed to serialization). The ``value`` parameter is the current value of
 the model's attribute (a field has no reference to its containing model, so it
-cannot retrieve the value itself), and the method should return data in a
-format that can be used as a parameter in a query for the database backend.
+cannot retrieve the value itself), and the method should return data in a format
+that can be used as a parameter in a query for the database backend.
 
 For example::
 
@@ -403,8 +418,7 @@ For example::
             return ''.join([''.join(l) for l in (value.north,
                     value.east, value.south, value.west)])
 
-``get_db_prep_save(self, value)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. method:: get_db_prep_save(self, value)
 
 Same as the above, but called when the Field value must be *saved* to the
 database. As the default implementation just calls ``get_db_prep_value``, you
@@ -412,28 +426,33 @@ shouldn't need to implement this method unless your custom field need a special
 conversion when being saved that is not the same as the used for normal query
 parameters (which is implemented by ``get_db_prep_value``).
 
+Preprocessing values before saving
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-``pre_save(self, model_instance, add)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. method:: pre_save(self, model_instance, add)
 
-This method is called just prior to ``get_db_prep_save()`` and should return
+This method is called just prior to :meth:`get_db_prep_save` and should return
 the value of the appropriate attribute from ``model_instance`` for this field.
-The attribute name is in ``self.attname`` (this is set up by ``Field``). If
-the model is being saved to the database for the first time, the ``add``
-parameter will be ``True``, otherwise it will be ``False``.
+The attribute name is in ``self.attname`` (this is set up by
+:class:`~django.db.models.Field`). If the model is being saved to the database
+for the first time, the ``add`` parameter will be ``True``, otherwise it will be
+``False``.
 
 You only need to override this method if you want to preprocess the value
-somehow, just before saving. For example, Django's ``DateTimeField`` uses this
-method to set the attribute correctly in the case of ``auto_now`` or
-``auto_now_add``.
+somehow, just before saving. For example, Django's
+`:class:`~django.db.models.DateTimeField` uses this method to set the attribute
+correctly in the case of :attr:`~django.db.models.Field.auto_now` or
+:attr:`~django.db.models.Field.auto_now_add`.
 
 If you do override this method, you must return the value of the attribute at
 the end. You should also update the model's attribute if you make any changes
 to the value so that code holding references to the model will always see the
 correct value.
 
-``get_db_prep_lookup(self, lookup_type, value)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Preparing values for use in database lookups
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. method:: get_db_prep_lookup(self, lookup_type, value)
 
 Prepares the ``value`` for passing to the database when used in a lookup (a
 ``WHERE`` constraint in SQL). The ``lookup_type`` will be one of the valid
@@ -447,7 +466,7 @@ should raise either a ``ValueError`` if the ``value`` is of the wrong sort (a
 list when you were expecting an object, for example) or a ``TypeError`` if
 your field does not support that type of lookup. For many fields, you can get
 by with handling the lookup types that need special handling for your field
-and pass the rest of the ``get_db_prep_lookup()`` method of the parent class.
+and pass the rest of the :meth:`get_db_prep_lookup` method of the parent class.
 
 If you needed to implement ``get_db_prep_save()``, you will usually need to
 implement ``get_db_prep_lookup()``. If you don't, ``get_db_prep_value`` will be
@@ -478,22 +497,23 @@ accepted lookup types to ``exact`` and ``in``::
             else:
                 raise TypeError('Lookup type %r not supported.' % lookup_type)
 
+Specifying the form field for a model field
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-``formfield(self, form_class=forms.CharField, **kwargs)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. method:: formfield(self, form_class=forms.CharField, **kwargs)
 
-Returns the default form field to use when this field is displayed
-in a model.
+Returns the default form field to use when this field is displayed in a model.
+This method is called by the :class:`~django.forms.ModelForm` helper.
 
 All of the ``kwargs`` dictionary is passed directly to the form field's
-``__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 `forms documentation`_ for information about this, and
-take a look at the code in ``django.contrib.localflavor`` for some examples of
-custom widgets.
+: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
+:mod:`django.contrib.localflavor` for some examples of custom widgets.
 
-Continuing our ongoing example, we can write the ``formfield()`` method as::
+Continuing our ongoing example, we can write the :meth:`formfield` method as::
 
     class HandField(models.Field):
         # ...
@@ -512,15 +532,17 @@ fields.
 .. _helper functions: ../forms/#generating-forms-for-models
 .. _forms documentation: ../forms/
 
-``get_internal_type(self)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Emulating built-in field types
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Returns a string giving the name of the ``Field`` subclass we are emulating at
-the database level. This is used to determine the type of database column for
-simple cases.
+.. method:: get_internal_type(self)
 
-If you have created a ``db_type()`` method, you don't need to worry about
-``get_internal_type()`` -- it won't be used much. Sometimes, though, your
+Returns a string giving the name of the :class:`~django.db.models.Field`
+subclass we are emulating at the database level. This is used to determine the
+type of database column for simple cases.
+
+If you have created a :meth:`db_type` method, you don't need to worry about
+:meth:`get_internal_type` -- it won't be used much. Sometimes, though, your
 database storage is similar in type to some other field, so you can use that
 other field's logic to create the right column.
 
@@ -535,35 +557,35 @@ For example::
 No matter which database backend we are using, this will mean that ``syncdb``
 and other SQL commands create the right column type for storing a string.
 
-If ``get_internal_type()`` returns a string that is not known to Django for
+If :meth:`get_internal_type` returns a string that is not known to Django for
 the database backend you are using -- that is, it doesn't appear in
-``django.db.backends.<db_name>.creation.DATA_TYPES`` -- the string will still
-be used by the serializer, but the default ``db_type()`` method will return
-``None``. See the documentation of ``db_type()`` above_ for reasons why this
-might be useful. Putting a descriptive string in as the type of the field for
-the serializer is a useful idea if you're ever going to be using the
-serializer output in some other place, outside of Django.
+``django.db.backends.<db_name>.creation.DATA_TYPES`` -- the string will still be
+used by the serializer, but the default :meth:`db_type` method will return
+``None``. See the documentation of :meth:`db_type` for reasons why this might be
+useful. Putting a descriptive string in as the type of the field for the
+serializer is a useful idea if you're ever going to be using the serializer
+output in some other place, outside of Django.
 
-.. _above: #db-type-self
+Converting field data for serialization
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-``flatten_data(self, follow, obj=None)``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. method:: flatten_data(self, follow, obj=None)
 
 .. admonition:: Subject to change
 
     Although implementing this method is necessary to allow field
     serialization, the API might change in the future.
 
-Returns a dictionary, mapping the field's attribute name to a
-flattened string version of the data. This method has some internal
-uses that aren't of interest to use here (mostly having to do with
-forms). For our purposes, it's sufficient to return a one item
-dictionary that maps the attribute name to a string.
+Returns a dictionary, mapping the field's attribute name to a flattened string
+version of the data. This method has some internal uses that aren't of interest
+to use here (mostly having to do with forms). For our purposes, it's sufficient
+to return a one item dictionary that maps the attribute name to a string.
 
 This method is used by the serializers to convert the field into a string for
-output. You can ignore the input parameters for serialization purposes,
-although calling ``Field._get_val_from_obj(obj)`` is the best way to get the
-value to serialize.
+output. You can ignore the input parameters for serialization purposes, although
+calling :meth:`Field._get_val_from_obj(obj)
+<django.db.models.Field._get_val_from_obj>` is the best way to get the value to
+serialize.
 
 For example, since our ``HandField`` uses strings for its data storage anyway,
 we can reuse some existing conversion code::
@@ -584,17 +606,19 @@ serialization formats. Here are a couple of tips to make things go more
 smoothly:
 
     1. Look at the existing Django fields (in
-       ``django/db/models/fields/__init__.py``) for inspiration. Try to find a
-       field that's similar to what you want and extend it a little bit,
+       :file:`django/db/models/fields/__init__.py`) for inspiration. Try to find
+       a field that's similar to what you want and extend it a little bit,
        instead of creating an entirely new field from scratch.
 
-    2. Put a ``__str__()`` or ``__unicode__()`` method on the class you're
+    2. Put a :meth:`__str__` or :meth:`__unicode__` method on the class you're
        wrapping up as a field. There are a lot of places where the default
-       behavior of the field code is to call ``force_unicode()`` on the value.
-       (In our examples in this document, ``value`` would be a ``Hand``
-       instance, not a ``HandField``). So if your ``__unicode__()`` method
-       automatically converts to the string form of your Python object, you can
-       save yourself a lot of work.
+       behavior of the field code is to call
+       :func:`~django.utils.encoding.force_unicode` on the value. (In our
+       examples in this document, ``value`` would be a ``Hand`` instance, not a
+       ``HandField``). So if your :meth:`__unicode__` method automatically
+       converts to the string form of your Python object, you can save yourself
+       a lot of work.
+
 
 Writing a ``FileField`` subclass
 =================================
@@ -606,17 +630,15 @@ retrieval, can remain unchanged, leaving subclasses to deal with the challenge
 of supporting a particular type of file.
 
 Django provides a ``File`` class, which is used as a proxy to the file's
-contents and operations. This can be subclassed to customzie hwo the file is
+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
-`file documentation`_.
+:ref:`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
 ``attr_class`` attribute of the ``FileField`` subclass.
 
-.. _file documentation: ../files/
-
 A few suggestions
 ------------------
 
diff --git a/docs/templates_python.txt b/docs/howto/custom-template-tags.txt
similarity index 55%
rename from docs/templates_python.txt
rename to docs/howto/custom-template-tags.txt
index a03ea215d2..4477f6bb83 100644
--- a/docs/templates_python.txt
+++ b/docs/howto/custom-template-tags.txt
@@ -1,634 +1,61 @@
-====================================================
-The Django template language: For Python programmers
-====================================================
+.. _howto-custom-template-tags:
 
-This document explains the Django template system from a technical
-perspective -- how it works and how to extend it. If you're just looking for
-reference on the language syntax, see
-`The Django template language: For template authors`_.
+================================
+Custom template tags and filters
+================================
 
-If you're looking to use the Django template system as part of another
-application -- i.e., without the rest of the framework -- make sure to read
-the `configuration`_ section later in this document.
+Introduction
+============
 
-.. _`The Django template language: For template authors`: ../templates/
+Django's template system comes a wide variety of :ref:`built-in tags and filters
+<ref-templates-builtins>` designed to address the presentation logic needs of
+your application. Nevertheless, you may find yourself needing functionality that
+is not covered by the core set of template primitives. You can extend the
+template engine by defining custom tags and filters using Python, and then make
+them available to your templates using the ``{% load %}`` tag.
 
-Basics
-======
+Code layout
+-----------
 
-A **template** is a text document, or a normal Python string, that is marked-up
-using the Django template language. A template can contain **block tags** or
-**variables**.
+Custom template tags and filters must live inside a Django app. If they relate
+to an existing app it makes sense to bundle them there; otherwise, you should
+create a new app to hold them.
 
-A **block tag** is a symbol within a template that does something.
+The app should contain a ``templatetags`` directory, at the same level as
+``models.py``, ``views.py``, etc. If this doesn't already exist, create it -
+don't forget the ``__init__.py`` file to ensure the directory is treated as a
+Python package.
 
-This definition is deliberately vague. For example, a block tag can output
-content, serve as a control structure (an "if" statement or "for" loop), grab
-content from a database or enable access to other template tags.
+Your custom tags and filters will live in a module inside the ``templatetags``
+directory. The name of the module file is the name you'll use to load the tags
+later, so be careful to pick a name that won't clash with custom tags and
+filters in another app.
 
-Block tags are surrounded by ``"{%"`` and ``"%}"``.
-
-Example template with block tags::
-
-    {% if is_logged_in %}Thanks for logging in!{% else %}Please log in.{% endif %}
-
-A **variable** is a symbol within a template that outputs a value.
-
-Variable tags are surrounded by ``"{{"`` and ``"}}"``.
-
-Example template with variables::
-
-    My first name is {{ first_name }}. My last name is {{ last_name }}.
-
-A **context** is a "variable name" -> "variable value" mapping that is passed
-to a template.
-
-A template **renders** a context by replacing the variable "holes" with values
-from the context and executing all block tags.
-
-Using the template system
-=========================
-
-Using the template system in Python is a two-step process:
-
-    * First, you compile the raw template code into a ``Template`` object.
-    * Then, you call the ``render()`` method of the ``Template`` object with a
-      given context.
-
-Compiling a string
-------------------
-
-The easiest way to create a ``Template`` object is by instantiating it
-directly. The class lives at ``django.template.Template``. The constructor
-takes one argument -- the raw template code::
-
-    >>> from django.template import Template
-    >>> t = Template("My name is {{ my_name }}.")
-    >>> print t
-    <django.template.Template instance>
-
-.. admonition:: Behind the scenes
-
-    The system only parses your raw template code once -- when you create the
-    ``Template`` object. From then on, it's stored internally as a "node"
-    structure for performance.
-
-    Even the parsing itself is quite fast. Most of the parsing happens via a
-    single call to a single, short, regular expression.
-
-Rendering a context
--------------------
-
-Once you have a compiled ``Template`` object, you can render a context -- or
-multiple contexts -- with it. The ``Context`` class lives at
-``django.template.Context``, and the constructor takes one (optional)
-argument: a dictionary mapping variable names to variable values. Call the
-``Template`` object's ``render()`` method with the context to "fill" the
-template::
-
-    >>> from django.template import Context, Template
-    >>> t = Template("My name is {{ my_name }}.")
-
-    >>> c = Context({"my_name": "Adrian"})
-    >>> t.render(c)
-    "My name is Adrian."
-
-    >>> c = Context({"my_name": "Dolores"})
-    >>> t.render(c)
-    "My name is Dolores."
-
-Variable names must consist of any letter (A-Z), any digit (0-9), an underscore
-or a dot.
-
-Dots have a special meaning in template rendering. A dot in a variable name
-signifies **lookup**. Specifically, when the template system encounters a dot
-in a variable name, it tries the following lookups, in this order:
-
-    * Dictionary lookup. Example: ``foo["bar"]``
-    * Attribute lookup. Example: ``foo.bar``
-    * Method call. Example: ``foo.bar()``
-    * List-index lookup. Example: ``foo[bar]``
-
-The template system uses the first lookup type that works. It's short-circuit
-logic.
-
-Here are a few examples::
-
-    >>> from django.template import Context, Template
-    >>> t = Template("My name is {{ person.first_name }}.")
-    >>> d = {"person": {"first_name": "Joe", "last_name": "Johnson"}}
-    >>> t.render(Context(d))
-    "My name is Joe."
-
-    >>> class PersonClass: pass
-    >>> p = PersonClass()
-    >>> p.first_name = "Ron"
-    >>> p.last_name = "Nasty"
-    >>> t.render(Context({"person": p}))
-    "My name is Ron."
-
-    >>> class PersonClass2:
-    ...     def first_name(self):
-    ...         return "Samantha"
-    >>> p = PersonClass2()
-    >>> t.render(Context({"person": p}))
-    "My name is Samantha."
-
-    >>> t = Template("The first stooge in the list is {{ stooges.0 }}.")
-    >>> c = Context({"stooges": ["Larry", "Curly", "Moe"]})
-    >>> t.render(c)
-    "The first stooge in the list is Larry."
-
-Method lookups are slightly more complex than the other lookup types. Here are
-some things to keep in mind:
-
-    * If, during the method lookup, a method raises an exception, the exception
-      will be propagated, unless the exception has an attribute
-      ``silent_variable_failure`` whose value is ``True``. If the exception
-      *does* have a ``silent_variable_failure`` attribute, the variable will
-      render as an empty string. Example::
-
-        >>> t = Template("My name is {{ person.first_name }}.")
-        >>> class PersonClass3:
-        ...     def first_name(self):
-        ...         raise AssertionError, "foo"
-        >>> p = PersonClass3()
-        >>> t.render(Context({"person": p}))
-        Traceback (most recent call last):
-        ...
-        AssertionError: foo
-
-        >>> class SilentAssertionError(Exception):
-        ...     silent_variable_failure = True
-        >>> class PersonClass4:
-        ...     def first_name(self):
-        ...         raise SilentAssertionError
-        >>> p = PersonClass4()
-        >>> t.render(Context({"person": p}))
-        "My name is ."
-
-      Note that ``django.core.exceptions.ObjectDoesNotExist``, which is the
-      base class for all Django database API ``DoesNotExist`` exceptions, has
-      ``silent_variable_failure = True``. So if you're using Django templates
-      with Django model objects, any ``DoesNotExist`` exception will fail
-      silently.
-
-    * A method call will only work if the method has no required arguments.
-      Otherwise, the system will move to the next lookup type (list-index
-      lookup).
-
-    * Obviously, some methods have side effects, and it'd be either foolish or
-      a security hole to allow the template system to access them.
-
-      A good example is the ``delete()`` method on each Django model object.
-      The template system shouldn't be allowed to do something like this::
-
-        I will now delete this valuable data. {{ data.delete }}
-
-      To prevent this, set a function attribute ``alters_data`` on the method.
-      The template system won't execute a method if the method has
-      ``alters_data=True`` set. The dynamically-generated ``delete()`` and
-      ``save()`` methods on Django model objects get ``alters_data=True``
-      automatically. Example::
-
-        def sensitive_function(self):
-            self.database_record.delete()
-        sensitive_function.alters_data = True
-
-How invalid variables are handled
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Generally, if a variable doesn't exist, the template system inserts the
-value of the ``TEMPLATE_STRING_IF_INVALID`` setting, which is set to ``''``
-(the empty string) by default.
-
-Filters that are applied to an invalid variable will only be applied if
-``TEMPLATE_STRING_IF_INVALID`` is set to ``''`` (the empty string). If
-``TEMPLATE_STRING_IF_INVALID`` is set to any other value, variable
-filters will be ignored.
-
-This behavior is slightly different for the ``if``, ``for`` and ``regroup``
-template tags. If an invalid variable is provided to one of these template
-tags, the variable will be interpreted as ``None``. Filters are always
-applied to invalid variables within these template tags.
-
-If ``TEMPLATE_STRING_IF_INVALID`` contains a ``'%s'``, the format marker will
-be replaced with the name of the invalid variable.
-
-.. admonition:: For debug purposes only!
-
-    While ``TEMPLATE_STRING_IF_INVALID`` can be a useful debugging tool,
-    it is a bad idea to turn it on as a 'development default'.
-
-    Many templates, including those in the Admin site, rely upon the
-    silence of the template system when a non-existent variable is
-    encountered. If you assign a value other than ``''`` to
-    ``TEMPLATE_STRING_IF_INVALID``, you will experience rendering
-    problems with these templates and sites.
-
-    Generally, ``TEMPLATE_STRING_IF_INVALID`` should only be enabled
-    in order to debug a specific template problem, then cleared
-    once debugging is complete.
-
-Playing with Context objects
-----------------------------
-
-Most of the time, you'll instantiate ``Context`` objects by passing in a
-fully-populated dictionary to ``Context()``. But you can add and delete items
-from a ``Context`` object once it's been instantiated, too, using standard
-dictionary syntax::
-
-    >>> c = Context({"foo": "bar"})
-    >>> c['foo']
-    'bar'
-    >>> del c['foo']
-    >>> c['foo']
-    ''
-    >>> c['newvariable'] = 'hello'
-    >>> c['newvariable']
-    'hello'
-
-A ``Context`` object is a stack. That is, you can ``push()`` and ``pop()`` it.
-If you ``pop()`` too much, it'll raise
-``django.template.ContextPopException``::
-
-    >>> c = Context()
-    >>> c['foo'] = 'first level'
-    >>> c.push()
-    >>> c['foo'] = 'second level'
-    >>> c['foo']
-    'second level'
-    >>> c.pop()
-    >>> c['foo']
-    'first level'
-    >>> c['foo'] = 'overwritten'
-    >>> c['foo']
-    'overwritten'
-    >>> c.pop()
-    Traceback (most recent call last):
-    ...
-    django.template.ContextPopException
-
-Using a ``Context`` as a stack comes in handy in some custom template tags, as
-you'll see below.
-
-Subclassing Context: RequestContext
------------------------------------
-
-Django comes with a special ``Context`` class,
-``django.template.RequestContext``, that acts slightly differently than
-the normal ``django.template.Context``. The first difference is that it takes
-an `HttpRequest object`_ as its first argument. For example::
-
-    c = RequestContext(request, {
-        'foo': 'bar',
-    }
-
-The second difference is that it automatically populates the context with a few
-variables, according to your `TEMPLATE_CONTEXT_PROCESSORS setting`_.
-
-The ``TEMPLATE_CONTEXT_PROCESSORS`` setting is a tuple of callables -- called
-**context processors** -- that take a request object as their argument and
-return a dictionary of items to be merged into the context. By default,
-``TEMPLATE_CONTEXT_PROCESSORS`` is set to::
-
-    ("django.core.context_processors.auth",
-    "django.core.context_processors.debug",
-    "django.core.context_processors.i18n",
-    "django.core.context_processors.media")
-
-Each processor is applied in order. That means, if one processor adds a
-variable to the context and a second processor adds a variable with the same
-name, the second will override the first. The default processors are explained
-below.
-
-Also, you can give ``RequestContext`` a list of additional processors, using the
-optional, third positional argument, ``processors``. In this example, the
-``RequestContext`` instance gets a ``ip_address`` variable::
-
-    def ip_address_processor(request):
-        return {'ip_address': request.META['REMOTE_ADDR']}
-
-    def some_view(request):
-        # ...
-        c = RequestContext(request, {
-            'foo': 'bar',
-        }, [ip_address_processor])
-        return t.render(c)
-
-.. note::
-    If you're using Django's ``render_to_response()`` shortcut to populate a
-    template with the contents of a dictionary, your template will be passed a
-    ``Context`` instance by default (not a ``RequestContext``). To use a
-    ``RequestContext`` in your template rendering, pass an optional third
-    argument to ``render_to_response()``: a ``RequestContext``
-    instance. Your code might look like this::
-
-        def some_view(request):
-            # ...
-            return render_to_response('my_template.html',
-                                      my_data_dictionary,
-                                      context_instance=RequestContext(request))
-
-Here's what each of the default processors does:
-
-.. _HttpRequest object: ../request_response/#httprequest-objects
-.. _TEMPLATE_CONTEXT_PROCESSORS setting: ../settings/#template-context-processors
-
-django.core.context_processors.auth
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
-``RequestContext`` will contain these three variables:
-
-    * ``user`` -- An ``auth.User`` instance representing the currently
-      logged-in user (or an ``AnonymousUser`` instance, if the client isn't
-      logged in). See the `user authentication docs`_.
-
-    * ``messages`` -- A list of messages (as strings) for the currently
-      logged-in user. Behind the scenes, this calls
-      ``request.user.get_and_delete_messages()`` for every request. That method
-      collects the user's messages and deletes them from the database.
-
-      Note that messages are set with ``user.message_set.create``. See the
-      `message docs`_ for more.
-
-    * ``perms`` -- An instance of
-      ``django.core.context_processors.PermWrapper``, representing the
-      permissions that the currently logged-in user has. See the `permissions
-      docs`_.
-
-.. _user authentication docs: ../authentication/#users
-.. _message docs: ../authentication/#messages
-.. _permissions docs: ../authentication/#permissions
-
-django.core.context_processors.debug
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
-``RequestContext`` will contain these two variables -- but only if your
-``DEBUG`` setting is set to ``True`` and the request's IP address
-(``request.META['REMOTE_ADDR']``) is in the ``INTERNAL_IPS`` setting:
-
-    * ``debug`` -- ``True``. You can use this in templates to test whether
-      you're in ``DEBUG`` mode.
-    * ``sql_queries`` -- A list of ``{'sql': ..., 'time': ...}`` dictionaries,
-      representing every SQL query that has happened so far during the request
-      and how long it took. The list is in order by query.
-
-django.core.context_processors.i18n
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
-``RequestContext`` will contain these two variables:
-
-    * ``LANGUAGES`` -- The value of the `LANGUAGES setting`_.
-    * ``LANGUAGE_CODE`` -- ``request.LANGUAGE_CODE``, if it exists. Otherwise,
-      the value of the `LANGUAGE_CODE setting`_.
-
-See the `internationalization docs`_ for more.
-
-.. _LANGUAGES setting: ../settings/#languages
-.. _LANGUAGE_CODE setting: ../settings/#language-code
-.. _internationalization docs: ../i18n/
-
-django.core.context_processors.media
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
-``RequestContext`` will contain a variable ``MEDIA_URL``, providing the
-value of the `MEDIA_URL setting`_.
-
-.. _MEDIA_URL setting: ../settings/#media-url
-
-django.core.context_processors.request
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
-``RequestContext`` will contain a variable ``request``, which is the current
-`HttpRequest object`_. Note that this processor is not enabled by default;
-you'll have to activate it.
-
-Writing your own context processors
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A context processor has a very simple interface: It's just a Python function
-that takes one argument, an ``HttpRequest`` object, and returns a dictionary
-that gets added to the template context. Each context processor *must* return
-a dictionary.
-
-Custom context processors can live anywhere in your code base. All Django cares
-about is that your custom context processors are pointed-to by your
-``TEMPLATE_CONTEXT_PROCESSORS`` setting.
-
-Loading templates
------------------
-
-Generally, you'll store templates in files on your filesystem rather than using
-the low-level ``Template`` API yourself. Save templates in a directory
-specified as a **template directory**.
-
-Django searches for template directories in a number of places, depending on
-your template-loader settings (see "Loader types" below), but the most basic
-way of specifying template directories is by using the ``TEMPLATE_DIRS``
-setting.
-
-The TEMPLATE_DIRS setting
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Tell Django what your template directories are by using the ``TEMPLATE_DIRS``
-setting in your settings file. This should be set to a list or tuple of strings
-that contain full paths to your template directory(ies). Example::
-
-    TEMPLATE_DIRS = (
-        "/home/html/templates/lawrence.com",
-        "/home/html/templates/default",
-    )
-
-Your templates can go anywhere you want, as long as the directories and
-templates are readable by the Web server. They can have any extension you want,
-such as ``.html`` or ``.txt``, or they can have no extension at all.
-
-Note that these paths should use Unix-style forward slashes, even on Windows.
-
-The Python API
-~~~~~~~~~~~~~~
-
-Django has two ways to load templates from files:
-
-``django.template.loader.get_template(template_name)``
-    ``get_template`` returns the compiled template (a ``Template`` object) for
-    the template with the given name. If the template doesn't exist, it raises
-    ``django.template.TemplateDoesNotExist``.
-
-``django.template.loader.select_template(template_name_list)``
-    ``select_template`` is just like ``get_template``, except it takes a list
-    of template names. Of the list, it returns the first template that exists.
-
-For example, if you call ``get_template('story_detail.html')`` and have the
-above ``TEMPLATE_DIRS`` setting, here are the files Django will look for, in
-order:
-
-    * ``/home/html/templates/lawrence.com/story_detail.html``
-    * ``/home/html/templates/default/story_detail.html``
-
-If you call ``select_template(['story_253_detail.html', 'story_detail.html'])``,
-here's what Django will look for:
-
-    * ``/home/html/templates/lawrence.com/story_253_detail.html``
-    * ``/home/html/templates/default/story_253_detail.html``
-    * ``/home/html/templates/lawrence.com/story_detail.html``
-    * ``/home/html/templates/default/story_detail.html``
-
-When Django finds a template that exists, it stops looking.
-
-.. admonition:: Tip
-
-    You can use ``select_template()`` for super-flexible "templatability." For
-    example, if you've written a news story and want some stories to have
-    custom templates, use something like
-    ``select_template(['story_%s_detail.html' % story.id, 'story_detail.html'])``.
-    That'll allow you to use a custom template for an individual story, with a
-    fallback template for stories that don't have custom templates.
-
-Using subdirectories
-~~~~~~~~~~~~~~~~~~~~
-
-It's possible -- and preferable -- to organize templates in subdirectories of
-the template directory. The convention is to make a subdirectory for each
-Django app, with subdirectories within those subdirectories as needed.
-
-Do this for your own sanity. Storing all templates in the root level of a
-single directory gets messy.
-
-To load a template that's within a subdirectory, just use a slash, like so::
-
-    get_template('news/story_detail.html')
-
-Using the same ``TEMPLATE_DIRS`` setting from above, this example
-``get_template()`` call will attempt to load the following templates:
-
-    * ``/home/html/templates/lawrence.com/news/story_detail.html``
-    * ``/home/html/templates/default/news/story_detail.html``
-
-Loader types
-~~~~~~~~~~~~
-
-By default, Django uses a filesystem-based template loader, but Django comes
-with a few other template loaders, which know how to load templates from other
-sources.
-
-These other loaders are disabled by default, but you can activate them by
-editing your ``TEMPLATE_LOADERS`` setting. ``TEMPLATE_LOADERS`` should be a
-tuple of strings, where each string represents a template loader. Here are the
-template loaders that come with Django:
-
-``django.template.loaders.filesystem.load_template_source``
-    Loads templates from the filesystem, according to ``TEMPLATE_DIRS``.
-
-``django.template.loaders.app_directories.load_template_source``
-    Loads templates from Django apps on the filesystem. For each app in
-    ``INSTALLED_APPS``, the loader looks for a ``templates`` subdirectory. If
-    the directory exists, Django looks for templates in there.
-
-    This means you can store templates with your individual apps. This also
-    makes it easy to distribute Django apps with default templates.
-
-    For example, for this setting::
-
-        INSTALLED_APPS = ('myproject.polls', 'myproject.music')
-
-    ...then ``get_template('foo.html')`` will look for templates in these
-    directories, in this order:
-
-        * ``/path/to/myproject/polls/templates/foo.html``
-        * ``/path/to/myproject/music/templates/foo.html``
-
-    Note that the loader performs an optimization when it is first imported:
-    It caches a list of which ``INSTALLED_APPS`` packages have a ``templates``
-    subdirectory.
-
-``django.template.loaders.eggs.load_template_source``
-    Just like ``app_directories`` above, but it loads templates from Python
-    eggs rather than from the filesystem.
-
-Django uses the template loaders in order according to the ``TEMPLATE_LOADERS``
-setting. It uses each loader until a loader finds a match.
-
-The ``render_to_string()`` shortcut
-===================================
-
-To cut down on the repetitive nature of loading and rendering
-templates, Django provides a shortcut function which largely
-automates the process: ``render_to_string()`` in
-``django.template.loader``, which loads a template, renders it and
-returns the resulting string::
-
-    from django.template.loader import render_to_string
-    rendered = render_to_string('my_template.html', { 'foo': 'bar' })
-
-The ``render_to_string`` shortcut takes one required argument --
-``template_name``, which should be the name of the template to load
-and render -- and two optional arguments::
-
-    dictionary
-        A dictionary to be used as variables and values for the
-        template's context. This can also be passed as the second
-        positional argument.
-
-    context_instance
-        An instance of ``Context`` or a subclass (e.g., an instance of
-        ``RequestContext``) to use as the template's context. This can
-        also be passed as the third positional argument.
-
-See also the `render_to_response()`_ shortcut, which calls
-``render_to_string`` and feeds the result into an ``HttpResponse``
-suitable for returning directly from a view.
-
-.. _render_to_response(): ../shortcuts/#render-to-response
-
-Extending the template system
-=============================
-
-Although the Django template language comes with several default tags and
-filters, you might want to write your own. It's easy to do.
-
-First, create a ``templatetags`` package in the appropriate Django app's
-package. It should be on the same level as ``models.py``, ``views.py``, etc. For
-example::
+For example, if your custom tags/filters are in a file called
+``poll_extras.py``, your app layout might look like this::
 
     polls/
         models.py
         templatetags/
+            __init__.py
+            poll_extras.py
         views.py
 
-Add two files to the ``templatetags`` package: an ``__init__.py`` file and a
-file that will contain your custom tag/filter definitions. The name of the
-latter file is the name you'll use to load the tags later. For example, if your
-custom tags/filters are in a file called ``poll_extras.py``, you'd do the
-following in a template::
+And in your template you would use the following:
+
+.. code-block:: html+django
 
     {% load poll_extras %}
 
-The ``{% load %}`` tag looks at your ``INSTALLED_APPS`` setting and only allows
-the loading of template libraries within installed Django apps. This is a
-security feature: It allows you to host Python code for many template libraries
-on a single computer without enabling access to all of them for every Django
-installation.
-
-If you write a template library that isn't tied to any particular models/views,
-it's perfectly OK to have a Django app package that only contains a
-``templatetags`` package.
+The app that contains the custom tags must be in :setting:`INSTALLED_APPS` in
+order for the ``{% load %}`` tag to work. This is a security feature: It allows
+you to host Python code for many template libraries on a single host machine
+without enabling access to all of them for every Django installation.
 
 There's no limit on how many modules you put in the ``templatetags`` package.
 Just keep in mind that a ``{% load %}`` statement will load tags/filters for
 the given Python module name, not the name of the app.
 
-Once you've created that Python module, you'll just have to write a bit of
-Python code, depending on whether you're writing filters or tags.
-
 To be a valid tag library, the module must contain a module-level variable
 named ``register`` that is a ``template.Library`` instance, in which all the
 tags and filters are registered. So, near the top of your module, put the
@@ -666,7 +93,9 @@ Here's an example filter definition::
         "Removes all values of arg from the given string"
         return value.replace(arg, '')
 
-And here's an example of how that filter would be used::
+And here's an example of how that filter would be used:
+
+.. code-block:: html+django
 
     {{ somevariable|cut:"0" }}
 
@@ -790,10 +219,10 @@ Template filter code falls into one of two situations:
        the result (aside from any that were already present), you should mark
        your filter with ``is_safe``::
 
-        @register.filter
-        def add_xx(value):
-            return '%sxx' % value
-        add_xx.is_safe = True
+           @register.filter
+           def add_xx(value):
+               return '%sxx' % value
+           add_xx.is_safe = True
 
        When this filter is used in a template where auto-escaping is enabled,
        Django will escape the output whenever the input is not already marked as
@@ -818,7 +247,8 @@ Template filter code falls into one of two situations:
        escaping so that your HTML markup isn't escaped further, so you'll need
        to handle the input yourself.
 
-       To mark the output as a safe string, use ``django.utils.safestring.mark_safe()``.
+       To mark the output as a safe string, use
+       :func:`django.utils.safestring.mark_safe`.
 
        Be careful, though. You need to do more than just mark the output as
        safe. You need to ensure it really *is* safe, and what you do depends on
@@ -852,9 +282,9 @@ Template filter code falls into one of two situations:
        The ``needs_autoescape`` attribute on the filter function and the
        ``autoescape`` keyword argument mean that our function will know whether
        automatic escaping is in effect when the filter is called. We use
-       ``autoescape`` to decide whether the input data needs to be passed through
-       ``django.utils.html.conditional_escape`` or not. (In the latter case, we
-       just use the identity function as the "escape" function.) The
+       ``autoescape`` to decide whether the input data needs to be passed
+       through ``django.utils.html.conditional_escape`` or not. (In the latter
+       case, we just use the identity function as the "escape" function.) The
        ``conditional_escape()`` function is like ``escape()`` except it only
        escapes input that is **not** a ``SafeData`` instance. If a ``SafeData``
        instance is passed to ``conditional_escape()``, the data is returned
@@ -902,7 +332,9 @@ responsible for returning a ``Node`` instance based on the contents of the tag.
 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::
+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>
 
@@ -1064,7 +496,9 @@ content (a template variable) to a template tag as an argument.
 
 While the previous examples have formatted the current time into a string and
 returned the string, suppose you wanted to pass in a ``DateTimeField`` from an
-object and have the template tag format that date-time::
+object and have the template tag format that date-time:
+
+.. code-block:: html+django
 
     <p>This post was last updated at {% format_time blog_entry.date_updated "%Y-%m-%d %I:%M %p" %}.</p>
 
@@ -1174,7 +608,7 @@ In Python 2.4, the decorator syntax also works::
 
 A couple of things to note about the ``simple_tag`` helper function:
 
-    * Checking for the required number of arguments, etc, has already been
+    * Checking for the required number of arguments, etc., has already been
       done by the time our function is called, so we don't need to do that.
     * The quotes around the argument (if any) have already been stripped away,
       so we just receive a plain string.
@@ -1200,11 +634,15 @@ These sorts of tags are called "inclusion tags".
 
 Writing inclusion tags is probably best demonstrated by example. Let's write a
 tag that outputs a list of choices for a given ``Poll`` object, such as was
-created in the tutorials_. We'll use the tag like this::
+created in the :ref:`tutorials <creating-models>`. We'll use the tag like this:
+
+.. code-block:: html+django
 
     {% show_results poll %}
 
-...and the output will be something like this::
+...and the output will be something like this:
+
+.. code-block:: html
 
     <ul>
       <li>First choice</li>
@@ -1223,7 +661,9 @@ for the template fragment. Example::
 
 Next, create the template used to render the tag's output. This template is a
 fixed feature of the tag: the tag writer specifies it, not the template
-designer. Following our example, the template is very simple::
+designer. Following our example, the template is very simple:
+
+.. code-block:: html+django
 
     <ul>
     {% for choice in choices %}
@@ -1272,13 +712,17 @@ back to the main page. Here's what the Python function would look like::
 
 In that ``register.inclusion_tag()`` line, we specified ``takes_context=True``
 and the name of the template. Here's what the template ``link.html`` might look
-like::
+like:
+
+.. code-block:: html+django
 
     Jump directly to <a href="{{ link }}">{{ title }}</a>.
 
 Then, any time you want to use that custom tag, load its library and call it
 without any arguments, like so::
 
+.. code-block:: html+django
+
     {% jump_link %}
 
 Note that when you're using ``takes_context=True``, there's no need to pass
@@ -1288,8 +732,6 @@ The ``takes_context`` parameter defaults to ``False``. When it's set to *True*,
 the tag is passed the context object, as in this example. That's the only
 difference between this case and the previous ``inclusion_tag`` example.
 
-.. _tutorials: ../tutorial01/#creating-models
-
 Setting a variable in the context
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1313,7 +755,9 @@ Note that ``render()`` returns the empty string. ``render()`` should always
 return string output. If all the template tag does is set a variable,
 ``render()`` should return the empty string.
 
-Here's how you'd use this new version of the tag::
+Here's how you'd use this new version of the tag:
+
+.. code-block:: html+django
 
     {% current_time "%Y-%M-%d %I:%M %p" %}<p>The time is {{ current_time }}.</p>
 
@@ -1322,7 +766,9 @@ But, there's a problem with ``CurrentTimeNode2``: The variable name
 template doesn't use ``{{ current_time }}`` anywhere else, because the
 ``{% current_time %}`` will blindly overwrite that variable's value. A cleaner
 solution is to make the template tag specify the name of the output variable,
-like so::
+like so:
+
+.. code-block:: html+django
 
     {% get_current_time "%Y-%M-%d %I:%M %p" as my_current_time %}
     <p>The current time is {{ my_current_time }}.</p>
@@ -1402,7 +848,9 @@ possible to do something with the code between block tags.
 For example, here's a custom template tag, ``{% upper %}``, that capitalizes
 everything between itself and ``{% endupper %}``.
 
-Usage::
+Usage:
+
+.. code-block:: html+django
 
     {% upper %}This will appear in uppercase, {{ your_name }}.{% endupper %}
 
@@ -1427,37 +875,3 @@ The only new concept here is the ``self.nodelist.render(context)`` in
 For more examples of complex rendering, see the source code for ``{% if %}``,
 ``{% for %}``, ``{% ifequal %}`` and ``{% ifchanged %}``. They live in
 ``django/template/defaulttags.py``.
-
-.. _configuration:
-
-Configuring the template system in standalone mode
-==================================================
-
-.. note::
-
-    This section is only of interest to people trying to use the template
-    system as an output component in another application. If you're using the
-    template system as part of a Django application, nothing here applies to
-    you.
-
-Normally, Django will load all the configuration information it needs from its
-own default configuration file, combined with the settings in the module given
-in the ``DJANGO_SETTINGS_MODULE`` environment variable. But if you're using the
-template system independently of the rest of Django, the environment variable
-approach isn't very convenient, because you probably want to configure the
-template system in line with the rest of your application rather than dealing
-with settings files and pointing to them via environment variables.
-
-To solve this problem, you need to use the manual configuration option
-described in the `settings file`_ documentation. Simply import the appropriate
-pieces of the templating system and then, *before* you call any of the
-templating functions, call ``django.conf.settings.configure()`` with any
-settings you wish to specify. You might want to consider setting at least
-``TEMPLATE_DIRS`` (if you're going to use template loaders),
-``DEFAULT_CHARSET`` (although the default of ``utf-8`` is probably fine) and
-``TEMPLATE_DEBUG``. All available settings are described in the
-`settings documentation`_, and any setting starting with *TEMPLATE_*
-is of obvious interest.
-
-.. _settings file: ../settings/#using-settings-without-the-django-settings-module-environment-variable
-.. _settings documentation: ../settings/
diff --git a/docs/fastcgi.txt b/docs/howto/deployment/fastcgi.txt
similarity index 86%
rename from docs/fastcgi.txt
rename to docs/howto/deployment/fastcgi.txt
index edd4c8a83d..f9f9a8184a 100644
--- a/docs/fastcgi.txt
+++ b/docs/howto/deployment/fastcgi.txt
@@ -1,17 +1,22 @@
+.. _howto-deployment-fastcgi:
+
 ===========================================
 How to use Django with FastCGI, SCGI or AJP
 ===========================================
 
-Although the `current preferred setup`_ for running Django is Apache_ with
-`mod_python`_, many people use shared hosting, on which protocols such as
-FastCGI, SCGI or AJP are the only viable options. In some setups, these protocols
-also allow better security -- and, possibly, better performance -- than mod_python.
+.. highlight:: bash
+
+Although the current preferred setup for running Django is :ref:`Apache with
+mod_python <howto-deployment-modpython>`, many people use shared hosting, on
+which protocols such as FastCGI, SCGI or AJP are the only viable options. In
+some setups, these protocols also allow better security -- and, possibly, better
+performance -- than mod_python_.
 
 .. admonition:: Note
 
     This document primarily focuses on FastCGI. Other protocols, such as SCGI
     and AJP, are also supported, through the ``flup`` Python package. See the
-    "Protocols" section below for specifics about SCGI and AJP.
+    Protocols_ section below for specifics about SCGI and AJP.
 
 Essentially, FastCGI is an efficient way of letting an external application
 serve pages to a Web server. The Web server delegates the incoming Web requests
@@ -19,12 +24,10 @@ serve pages to a Web server. The Web server delegates the incoming Web requests
 to the Web server, which, in turn, passes it back to the client's Web browser.
 
 Like mod_python, FastCGI allows code to stay in memory, allowing requests to be
-served with no startup time. Unlike mod_python (or `mod_perl`_), a FastCGI
+served with no startup time. Unlike mod_python_ (or `mod_perl`_), a FastCGI
 process doesn't run inside the Web server process, but in a separate,
 persistent process.
 
-.. _current preferred setup: ../modpython/
-.. _Apache: http://httpd.apache.org/
 .. _mod_python: http://www.modpython.org/
 .. _mod_perl: http://perl.apache.org/
 
@@ -45,9 +48,8 @@ persistent process.
 Prerequisite: flup
 ==================
 
-Before you can start using FastCGI with Django, you'll need to install flup_,
-which is a Python library for dealing with FastCGI. Version 0.5 or newer should
-work fine.
+Before you can start using FastCGI with Django, you'll need to install flup_, a
+Python library for dealing with FastCGI. Version 0.5 or newer should work fine.
 
 .. _flup: http://www.saddi.com/software/flup/
 
@@ -72,25 +74,27 @@ TCP socket. What you choose is a manner of preference; a TCP socket is usually
 easier due to permissions issues.
 
 To start your server, first change into the directory of your project (wherever
-your ``manage.py`` is), and then run ``manage.py`` with the ``runfcgi`` option::
+your :ref:`manage.py <ref-django-admin>` is), and then run the
+:djadmin:`runfcgi` command::
 
     ./manage.py runfcgi [options]
 
-If you specify ``help`` as the only option after ``runfcgi``, it'll display a
-list of all the available options.
+If you specify ``help`` as the only option after :djadmin:`runfcgi`, it'll
+display a list of all the available options.
 
-You'll need to specify either a ``socket``, ``protocol`` or both ``host`` and
-``port``. Then, when you set up your Web server, you'll just need to point it
-at the host/port or socket you specified when starting the FastCGI server.
+You'll need to specify either a ``socket``, a ``protocol`` or both ``host`` and
+``port``. Then, when you set up your Web server, you'll just need to point it at
+the host/port or socket you specified when starting the FastCGI server. See the
+examples_, below.
 
 Protocols
 ---------
 
 Django supports all the protocols that flup_ does, namely fastcgi_, `SCGI`_ and
 `AJP1.3`_ (the Apache JServ Protocol, version 1.3). Select your preferred
-protocol by using the ``protocol=<protocol_name>`` option with
-``./manage.py runfcgi`` -- where ``<protocol_name>`` may be one of: ``fcgi``
-(the default), ``scgi`` or ``ajp``. For example::
+protocol by using the ``protocol=<protocol_name>`` option with ``./manage.py
+runfcgi`` -- where ``<protocol_name>`` may be one of: ``fcgi`` (the default),
+``scgi`` or ``ajp``. For example::
 
     ./manage.py runfcgi protocol=scgi
 
@@ -122,8 +126,8 @@ Simply hitting ``Ctrl-C`` will stop and quit the FastCGI server. However, when
 you're dealing with background processes, you'll need to resort to the Unix
 ``kill`` command.
 
-If you specify the ``pidfile`` option to your ``manage.py runfcgi``, you can
-kill the running FastCGI daemon like this::
+If you specify the ``pidfile`` option to :djadmin:`runfcgi`, you can kill the
+running FastCGI daemon like this::
 
     kill `cat $PIDFILE`
 
@@ -170,7 +174,9 @@ Specifying the location of the FastCGI server
 
 The ``FastCGIExternalServer`` directive tells Apache how to find your FastCGI
 server. As the `FastCGIExternalServer docs`_ explain, you can specify either a
-``socket`` or a ``host``. Here are examples of both::
+``socket`` or a ``host``. Here are examples of both:
+
+.. code-block:: apache
 
     # Connect to FastCGI via a socket / named pipe.
     FastCGIExternalServer /home/user/public_html/mysite.fcgi -socket /home/user/mysite.sock
@@ -195,7 +201,9 @@ directive, as explained in the previous section).
 
 In this example, we tell Apache to use FastCGI to handle any request that
 doesn't represent a file on the filesystem and doesn't start with ``/media/``.
-This is probably the most common case, if you're using Django's admin site::
+This is probably the most common case, if you're using Django's admin site:
+
+.. code-block:: apache
 
     <VirtualHost 12.34.56.78>
       ServerName example.com
@@ -215,15 +223,19 @@ constructing URLs with the ``{% url %}`` template tag (and similar methods).
 lighttpd setup
 ==============
 
-lighttpd is a lightweight Web server commonly used for serving static files. It
+lighttpd_ is a lightweight Web server commonly used for serving static files. It
 supports FastCGI natively and, thus, is a good choice for serving both static
 and dynamic pages, if your site doesn't have any Apache-specific needs.
 
+.. _lighttpd: http://www.lighttpd.net/
+
 Make sure ``mod_fastcgi`` is in your modules list, somewhere after
 ``mod_rewrite`` and ``mod_access``, but not after ``mod_accesslog``. You'll
 probably want ``mod_alias`` as well, for serving admin media.
 
-Add the following to your lighttpd config file::
+Add the following to your lighttpd config file:
+
+.. code-block:: lua
 
     server.document-root = "/home/user/public_html"
     fastcgi.server = (
@@ -289,7 +301,9 @@ using Web server-spawned processes.
     there's no need for you to start the FastCGI server on your own. Apache
     will spawn a number of processes, scaling as it needs to.
 
-In your Web root directory, add this to a file named ``.htaccess`` ::
+In your Web root directory, add this to a file named ``.htaccess``:
+
+.. code-block:: apache
 
     AddHandler fastcgi-script .fcgi
     RewriteEngine On
@@ -298,7 +312,9 @@ In your Web root directory, add this to a file named ``.htaccess`` ::
 
 Then, create a small script that tells Apache how to spawn your FastCGI
 program. Create a file ``mysite.fcgi`` and place it in your Web directory, and
-be sure to make it executable::
+be sure to make it executable:
+
+.. code-block:: python
 
     #!/usr/bin/python
     import sys, os
@@ -332,12 +348,10 @@ easily by using the ``touch`` command::
 Serving admin media files
 =========================
 
-Regardless of the server and configuration you eventually decide to use, you will
-also need to give some thought to how to serve the admin media files. The
-advice given in the modpython_ documentation is also applicable in the setups
-detailed above.
-
-.. _modpython: ../modpython/#serving-the-admin-files
+Regardless of the server and configuration you eventually decide to use, you
+will also need to give some thought to how to serve the admin media files. The
+advice given in the :ref:`modpython <serving-the-admin-files>` documentation
+is also applicable in the setups detailed above.
 
 Forcing the URL prefix to a particular value
 ============================================
@@ -366,3 +380,4 @@ As an example of how to use it, if your Django configuration is serving all of
 the URLs under ``'/'`` and you wanted to use this setting, you would set
 ``FORCE_SCRIPT_NAME = ''`` in your settings file.
 
+
diff --git a/docs/howto/deployment/index.txt b/docs/howto/deployment/index.txt
new file mode 100644
index 0000000000..80c16fcd82
--- /dev/null
+++ b/docs/howto/deployment/index.txt
@@ -0,0 +1,33 @@
+.. _howto-deployment-index:
+
+Deploying Django
+================
+
+Django's chock-full of shortcuts to make web developer's lives easier, but all
+those tools are of no use if you can't easily deploy your sites. Since Django's
+inception, ease of deployment has been a major goal. There's a number of good
+ways to easily deploy Django:
+
+.. toctree::
+   :maxdepth: 1
+   
+   modpython
+   fastcgi
+   
+:ref:`Deploying under mod_python <howto-deployment-modpython>` is the
+recommended deployment method; start there if you're not sure which path you'd
+like to go down.
+
+.. seealso::
+
+    * `Chapter 20 of The Django Book`_ discusses deployment and especially
+      scaling in more detail.
+      
+    * `mod_wsgi`_ is a newcomer to the Python deployment world, but it's rapidly
+      gaining traction. Currently there's a few hoops you have to jump through to
+      `use mod_wsgi with Django`_, but mod_wsgi tends to get rave reviews from
+      those who use it.
+
+.. _chapter 20 of the django book: http://djangobook.com/en/1.0/chapter20/
+.. _mod_wsgi: http://code.google.com/p/modwsgi/
+.. _use mod_wsgi with Django: http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango
\ No newline at end of file
diff --git a/docs/modpython.txt b/docs/howto/deployment/modpython.txt
similarity index 83%
rename from docs/modpython.txt
rename to docs/howto/deployment/modpython.txt
index 44de0e1bd2..0303e13153 100644
--- a/docs/modpython.txt
+++ b/docs/howto/deployment/modpython.txt
@@ -1,27 +1,30 @@
-=================================
-How to use Django with mod_python
-=================================
+.. _howto-deployment-modpython:
+
+============================================
+How to use Django with Apache and mod_python
+============================================
+
+.. highlight:: apache
 
 Apache_ with `mod_python`_ currently is the preferred setup for using Django
 on a production server.
 
-mod_python is similar to `mod_perl`_ : It embeds Python within Apache and loads
-Python code into memory when the server starts. Code stays in memory throughout
-the life of an Apache process, which leads to significant performance gains over
-other server arrangements.
+mod_python is similar to (and inspired by) `mod_perl`_ : It embeds Python within
+Apache and loads Python code into memory when the server starts. Code stays in
+memory throughout the life of an Apache process, which leads to significant
+performance gains over other server arrangements.
 
 Django requires Apache 2.x and mod_python 3.x, and you should use Apache's
 `prefork MPM`_, as opposed to the `worker MPM`_.
 
-You may also be interested in `How to use Django with FastCGI, SCGI or AJP`_
-(which also covers SCGI and AJP).
+You may also be interested in :ref:`How to use Django with FastCGI, SCGI or AJP
+<howto-deployment-fastcgi>` (which also covers SCGI and AJP).
 
 .. _Apache: http://httpd.apache.org/
 .. _mod_python: http://www.modpython.org/
 .. _mod_perl: http://perl.apache.org/
 .. _prefork MPM: http://httpd.apache.org/docs/2.2/mod/prefork.html
 .. _worker MPM: http://httpd.apache.org/docs/2.2/mod/worker.html
-.. _How to use Django with FastCGI, SCGI or AJP: ../fastcgi/
 
 Basic configuration
 ===================
@@ -35,7 +38,7 @@ Then edit your ``httpd.conf`` file and add the following::
         SetHandler python-program
         PythonHandler django.core.handlers.modpython
         SetEnv DJANGO_SETTINGS_MODULE mysite.settings
-        PythonOption django.root /mysite
+        PythonOption django.root /mysite        
         PythonDebug On
     </Location>
 
@@ -43,8 +46,8 @@ Then edit your ``httpd.conf`` file and add the following::
 project's settings file.
 
 This tells Apache: "Use mod_python for any URL at or under '/mysite/', using the
-Django mod_python handler." It passes the value of ``DJANGO_SETTINGS_MODULE``
-so mod_python knows which settings to use.
+Django mod_python handler." It passes the value of :ref:`DJANGO_SETTINGS_MODULE
+<django-settings-module>` so mod_python knows which settings to use.
 
 **New in Django development version:** Because mod_python does not know we are
 serving this site from underneath the ``/mysite/`` prefix, this value needs to
@@ -78,27 +81,27 @@ computer, you'll have to tell mod_python where your project can be found:
         SetHandler python-program
         PythonHandler django.core.handlers.modpython
         SetEnv DJANGO_SETTINGS_MODULE mysite.settings
-        PythonOption django.root /mysite
+        PythonOption django.root /mysite        
         PythonDebug On
         **PythonPath "['/path/to/project'] + sys.path"**
     </Location>
 
 The value you use for ``PythonPath`` should include the parent directories of
 all the modules you are going to import in your application. It should also
-include the parent directory of the ``DJANGO_SETTINGS_MODULE`` location. This
-is exactly the same situation as setting the Python path for interactive
-usage. Whenever you try to import something, Python will run through all the
-directories in ``sys.path`` in turn, from first to last, and try to import
-from each directory until one succeeds.
+include the parent directory of the :ref:`DJANGO_SETTINGS_MODULE
+<django-settings-module>` location. This is exactly the same situation as
+setting the Python path for interactive usage. Whenever you try to import
+something, Python will run through all the directories in ``sys.path`` in turn,
+from first to last, and try to import from each directory until one succeeds.
 
-An example might make this clearer. Suppose
-you have some applications under ``/usr/local/django-apps/`` (for example,
-``/usr/local/django-apps/weblog/`` and so forth), your settings file is at
-``/var/www/mysite/settings.py`` and you have specified
-``DJANGO_SETTINGS_MODULE`` as in the above example. In this case, you would
-need to write your ``PythonPath`` directive as::
+An example might make this clearer. Suppose you have some applications under
+``/usr/local/django-apps/`` (for example, ``/usr/local/django-apps/weblog/`` and
+so forth), your settings file is at ``/var/www/mysite/settings.py`` and you have
+specified :ref:`DJANGO_SETTINGS_MODULE <django-settings-module>` as in the above
+example. In this case, you would need to write your ``PythonPath`` directive
+as::
 
-	PythonPath "['/usr/local/django-apps/', '/var/www'] + sys.path"
+    PythonPath "['/usr/local/django-apps/', '/var/www'] + sys.path"
 
 With this path, ``import weblog`` and ``import mysite.settings`` will both
 work. If you had ``import blogroll`` in your code somewhere and ``blogroll``
@@ -127,9 +130,9 @@ Note that you should set ``PythonDebug Off`` on a production server. If you
 leave ``PythonDebug On``, your users would see ugly (and revealing) Python
 tracebacks if something goes wrong within mod_python.
 
-Restart Apache, and any request to /mysite/ or below will be served by Django.
-Note that Django's URLconfs won't trim the "/mysite/" -- they get passed the
-full URL.
+Restart Apache, and any request to ``/mysite/`` or below will be served by
+Django. Note that Django's URLconfs won't trim the "/mysite/" -- they get passed
+the full URL.
 
 When deploying Django sites on mod_python, you'll need to restart Apache each
 time you make changes to your Python code.
@@ -196,6 +199,8 @@ Or add the debugging information to the template of your page.
 
 .. _mod_python documentation: http://modpython.org/live/current/doc-html/directives.html
 
+.. _serving-media-files:
+
 Serving media files
 ===================
 
@@ -205,9 +210,9 @@ server you choose.
 We recommend using a separate Web server -- i.e., one that's not also running
 Django -- for serving media. Here are some good choices:
 
-* lighttpd_
-* TUX_
-* A stripped-down version of Apache_
+    * lighttpd_
+    * TUX_
+    * A stripped-down version of Apache_
 
 If, however, you have no option but to serve media files on the same Apache
 ``VirtualHost`` as Django, here's how you can turn off mod_python for a
@@ -243,6 +248,10 @@ the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or
 .. _TUX: http://en.wikipedia.org/wiki/TUX_web_server
 .. _Apache: http://httpd.apache.org/
 
+.. _howto-deployment-modpython-serving-the-admin-files:
+
+.. _serving-the-admin-files:
+
 Serving the admin files
 =======================
 
@@ -251,25 +260,27 @@ but this is not the case when you use any other server arrangement. You're
 responsible for setting up Apache, or whichever media server you're using, to
 serve the admin files.
 
-The admin files live in (``django/contrib/admin/media``) of the Django
+The admin files live in (:file:`django/contrib/admin/media`) of the Django
 distribution.
 
 Here are two recommended approaches:
 
     1. Create a symbolic link to the admin media files from within your
-       document root. This way, all of your Django-related files -- code
-       **and** templates -- stay in one place, and you'll still be able to
-       ``svn update`` your code to get the latest admin templates, if they
-       change.
+       document root. This way, all of your Django-related files -- code **and**
+       templates -- stay in one place, and you'll still be able to ``svn
+       update`` your code to get the latest admin templates, if they change.
+       
     2. Or, copy the admin media files so that they live within your Apache
        document root.
 
-Using eggs with mod_python
-==========================
+Using "eggs" with mod_python
+============================
 
 If you installed Django from a Python egg_ or are using eggs in your Django
 project, some extra configuration is required. Create an extra file in your
-project (or somewhere else) that contains something like the following::
+project (or somewhere else) that contains something like the following:
+
+.. code-block:: python
 
     import os
     os.environ['PYTHON_EGG_CACHE'] = '/some/directory'
@@ -322,6 +333,7 @@ of which has to do with Django itself.
     1. It may be because your Python code is importing the "pyexpat" module,
        which may conflict with the version embedded in Apache. For full
        information, see `Expat Causing Apache Crash`_.
+       
     2. It may be because you're running mod_python and mod_php in the same
        Apache instance, with MySQL as your database backend. In some cases,
        this causes a known mod_python issue due to version conflicts in PHP and
diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt
new file mode 100644
index 0000000000..e0750ce327
--- /dev/null
+++ b/docs/howto/error-reporting.txt
@@ -0,0 +1,65 @@
+.. _howto-error-reporting:
+
+Error reporting via e-mail
+==========================
+
+When you're running a public site you should always turn off the
+:setting:`DEBUG` setting. That will make your server run much faster, and will
+also prevent malicious users from seeing details of your application that can be
+revealed by the error pages.
+
+However, running with :setting:`DEBUG` set to ``False`` means you'll never see
+errors generated by your site -- everyone will just see your public error pages.
+You need to keep track of errors that occur in deployed sites, so Django can be
+configured to email you details of those errors.
+
+Server errors
+-------------
+
+When :setting:`DEBUG` is ``False``, Django will e-mail the users listed in the
+:setting:`ADMIN` setting whenever your code raises an unhandled exception and
+results in an internal server error (HTTP status code 500). This gives the
+administrators immediate notification of any errors. The :setting:`ADMINS` will
+get a description of the error, a complete Python traceback, and details about
+the HTTP request that caused the error.
+
+To disable this behavior, just remove all entries from the :setting:`ADMINS`
+setting.
+
+404 errors
+----------
+
+Django can also be configured to email errors about broken links (404 "page
+not found" errors). Django sends emails about 404 errors when:
+
+    * :setting:`DEBUG` is ``False``
+    
+    * :setting:`SEND_BROKEN_LINK_EMAILS` is ``True``
+    
+    * Your :setting:`MIDDLEWARE_CLASSES` setting includes ``CommonMiddleware``
+      (which it does by default).
+    
+If those conditions are met, Django will e-mail the users listed in the
+:setting:`MANAGERS` setting whenever your code raises a 404 and the request has
+a referer. (It doesn't bother to e-mail for 404s that don't have a referer --
+those are usually just people typing in broken URLs or broken web 'bots).
+
+You can tell Django to stop reporting particular 404s by tweaking the
+:setting:`IGNORABLE_404_ENDS` and :setting:`IGNORABLE_404_STARTS` settings. Both
+should be a tuple of strings. For example::
+
+    IGNORABLE_404_ENDS = ('.php', '.cgi')
+    IGNORABLE_404_STARTS = ('/phpmyadmin/',)
+
+In this example, a 404 to any URL ending with ``.php`` or ``.cgi`` will *not* be
+reported. Neither will any URL starting with ``/phpmyadmin/``.
+
+The best way to disable this behavior is to set
+:setting:`SEND_BROKEN_LINK_EMAILS` to ``False``.
+
+.. seealso::
+
+    You can also set up custom error reporting by writing a custom piece of
+    :ref:`exception middleware <exception-middleware>`. If you do write custom
+    error handling, it's a good idea to emulate Django's built-in error handling
+    and only report/log errors if :setting:`DEBUG` is ``False``.
diff --git a/docs/howto/index.txt b/docs/howto/index.txt
new file mode 100644
index 0000000000..e8f30888ab
--- /dev/null
+++ b/docs/howto/index.txt
@@ -0,0 +1,33 @@
+.. _howto-index:
+
+"How-to" guides
+===============
+
+Here you'll find short answers to "How do I....?" types of questions. These
+how-to guides don't cover topics in depth -- you'll find that material in the
+:ref:`topics-index` and the :ref:`ref-index`. However, these guides will help
+you quickly accomplish common tasks.
+
+.. toctree::
+   :maxdepth: 1
+   
+   apache-auth
+   custom-management-commands
+   custom-model-fields
+   custom-template-tags
+   custom-file-storage
+   deployment/index
+   error-reporting
+   initial-data
+   legacy-databases
+   outputting-csv
+   outputting-pdf
+   static-files
+
+.. seealso::
+
+    The `Django community aggregator`_, where we aggregate content from the
+    global Django community. Many writers in the aggregator write this sort of
+    how-to material.
+    
+    .. _django community aggregator: http://www.djangoproject.com/community/
\ No newline at end of file
diff --git a/docs/howto/initial-data.txt b/docs/howto/initial-data.txt
new file mode 100644
index 0000000000..871c5e8fa1
--- /dev/null
+++ b/docs/howto/initial-data.txt
@@ -0,0 +1,140 @@
+.. _howto-initial-data:
+
+=================================
+Providing initial data for models
+=================================
+
+It's sometimes useful to pre-populate your database with hard-coded data when
+you're first setting up an app. There's a couple of ways you can have Django
+automatically create this data: you can provide `initial data via fixtures`_, or
+you can provide `initial data as SQL`_.
+
+In general, using a fixture is a cleaner method since it's database-agnostic,
+but initial SQL is also quite a bit more flexible.
+
+.. _initial data as sql: `providing initial sql data`_
+.. _initial data via fixtures: `providing initial data with fixtures`_
+
+Providing initial data with fixtures
+====================================
+
+A fixture is a collection of data that Django knows how to import into a
+database. The most straightforward way of creating a fixture if you've already
+got some data is to use the :djadmin:`manage.py dumpdata` command. Or, you can
+write fixtures by hand; fixtures can be written as XML, YAML, or JSON documents.
+The :ref:`serialization documentation <topics-serialization>` has more details
+about each of these supported :ref:`serialization formats
+<serialization-formats>`.
+
+As an example, though, here's what a fixture for a simple ``Person`` model might
+look like in JSON:
+
+.. code-block:: js
+
+    [
+      {
+        "model": "myapp.person",  
+        "pk": 1,
+        "fields": {
+          "first_name": "John",
+          "last_name": "Lennon",
+        }
+      },
+      {
+        "model": "myapp.person",  
+        "pk": 2,
+        "fields": {
+          "first_name": "Paul",
+          "last_name": "McCartney",
+        }
+      },
+    ]
+    
+And here's that same fixture as YAML:
+
+.. code-block:: none
+
+    - model: myapp.person
+      pk: 1
+      fields:
+        first_name: John
+        last_name: Lennon
+    - model: myapp.person
+      pk: 1
+      fields:
+        first_name: Paul
+        last_name: McCartney
+        
+You'll store this data in a ``fixtures`` directory inside you app.
+
+Loading data is easy: just call :djadmin:`manage.py loaddata fixturename
+<loaddata>`, where *fixturename* is the name of the fixture file you've created.
+Every time you run :djadmin:`loaddata` the data will be read from the fixture
+and re-loaded into the database. Note that this means that if you change one of
+the rows created by a fixture and the run :djadmin:`loaddata` again you'll wipe
+out any changes you've made.
+
+Automatically loading initial data fixtures
+-------------------------------------------
+
+If you create a fixture named ``initial_data.[xml/yml/json]``, that fixture will
+be loaded every time you run :djadmin:`syncdb`. This is extremely convenient,
+but be careful: remember that the data will be refreshed *every time* you run
+:djadmin:`syncdb`. So don't use ``initial_data`` for data you'll want to edit.
+
+.. seealso::
+
+    Fixtures are also used by the :ref:`testing framework
+    <topics-testing-fixtures>` to help set up a consistent test environment.
+
+.. _initial-sql:
+
+Providing initial SQL data
+==========================
+
+Django provides a hook for passing the database arbitrary SQL that's executed
+just after the CREATE TABLE statements when you run :djadmin:`syncdb`. You can
+use this hook to populate default records, or you could also create SQL
+functions, views, triggers, etc.
+
+The hook is simple: Django just looks for a file called ``sql/<modelname>.sql``,
+in your app directory, where ``<modelname>`` is the model's name in lowercase.
+
+So, if you had a ``Person`` model in an app called ``myapp``, you could add
+arbitrary SQL to the file ``sql/person.sql`` inside your ``myapp`` directory.
+Here's an example of what the file might contain:
+
+.. code-block:: sql
+
+    INSERT INTO myapp_person (first_name, last_name) VALUES ('John', 'Lennon');
+    INSERT INTO myapp_person (first_name, last_name) VALUES ('Paul', 'McCartney');
+
+Each SQL file, if given, is expected to contain valid SQL statements
+which will insert the desired data (e.g., properly-formatted
+``INSERT`` statements separated by semicolons).
+
+The SQL files are read by the :djadmin:`sqlcustom`, :djadmin:`sqlreset`,
+:djadmin:`sqlall` and :djadmin:`reset` commands in :ref:`manage.py
+<ref-django-admin>`. Refer to the :ref:`manage.py documentation
+<ref-django-admin>` for more information.
+
+Note that if you have multiple SQL data files, there's no guarantee of the order
+in which they're executed. The only thing you can assume is that, by the time
+your custom data files are executed, all the database tables already will have
+been created.
+
+Database-backend-specific SQL data
+----------------------------------
+
+There's also a hook for backend-specific SQL data. For example, you can have
+separate initial-data files for PostgreSQL and MySQL. For each app, Django
+looks for a file called ``<appname>/sql/<modelname>.<backend>.sql``, where
+``<appname>`` is your app directory, ``<modelname>`` is the model's name in
+lowercase and ``<backend>`` is the value of :setting:`DATABASE_ENGINE` in your
+settings file (e.g., ``postgresql``, ``mysql``).
+
+Backend-specific SQL data is executed before non-backend-specific SQL data. For
+example, if your app contains the files ``sql/person.sql`` and
+``sql/person.postgresql.sql`` and you're installing the app on PostgreSQL,
+Django will execute the contents of ``sql/person.postgresql.sql`` first, then
+``sql/person.sql``.
diff --git a/docs/howto/legacy-databases.txt b/docs/howto/legacy-databases.txt
new file mode 100644
index 0000000000..c4eb1d82c7
--- /dev/null
+++ b/docs/howto/legacy-databases.txt
@@ -0,0 +1,67 @@
+.. _howto-legacy-databases:
+
+=========================================
+Integrating Django with a legacy database
+=========================================
+
+While Django is best suited for developing new applications, it's quite
+possible to integrate it into legacy databases. Django includes a couple of
+utilities to automate as much of this process as possible.
+
+This document assumes you know the Django basics, as covered in the
+:ref:`tutorial <intro-tutorial01>`.
+
+Once you've got Django set up, you'll follow this general process to integrate
+with an existing database.
+
+Give Django your database parameters
+====================================
+
+You'll need to tell Django what your database connection parameters are, and
+what the name of the database is. Do that by editing these settings in your
+:ref:`settings file <topics-settings>`:
+
+    * :setting:`DATABASE_NAME`
+    * :setting:`DATABASE_ENGINE`
+    * :setting:`DATABASE_USER`
+    * :setting:`DATABASE_PASSWORD`
+    * :setting:`DATABASE_HOST`
+    * :setting:`DATABASE_PORT`
+
+Auto-generate the models
+========================
+
+.. highlight:: bash
+
+Django comes with a utility called :djadmin:`inspectdb` that can create models
+by introspecting an existing database. You can view the output by running this
+command::
+
+    python manage.py inspectdb
+
+Save this as a file by using standard Unix output redirection::
+
+    python manage.py inspectdb > models.py
+
+This feature is meant as a shortcut, not as definitive model generation. See the
+:djadmin:`documentation of inspectdb <inspectdb>` for more information.
+
+Once you've cleaned up your models, name the file ``models.py`` and put it in
+the Python package that holds your app. Then add the app to your
+:setting:`INSTALLED_APPS` setting.
+
+Install the core Django tables
+==============================
+
+Next, run the :djadmin:`syncdb` command to install any extra needed database
+records such as admin permissions and content types::
+
+    python manage.py syncdb
+
+Test and tweak
+==============
+
+Those are the basic steps -- from here you'll want to tweak the models Django
+generated until they work the way you'd like. Try accessing your data via the
+Django database API, and try editing objects via Django's admin site, and edit
+the models file accordingly.
diff --git a/docs/outputting_csv.txt b/docs/howto/outputting-csv.txt
similarity index 72%
rename from docs/outputting_csv.txt
rename to docs/howto/outputting-csv.txt
index d6ec3f62a0..5192c51228 100644
--- a/docs/outputting_csv.txt
+++ b/docs/howto/outputting-csv.txt
@@ -1,12 +1,12 @@
+.. _howto-outputting-csv:
+
 ==========================
 Outputting CSV with Django
 ==========================
 
 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://www.python.org/doc/current/lib/module-csv.html
 
@@ -14,18 +14,8 @@ 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 ``HttpResponse`` objects are file-like objects.
-
-.. admonition:: Note
-
-    For more information on ``HttpResponse`` objects, see
-    `Request and response objects`_.
-
-    For more information on the CSV library, see the `CSV library docs`_.
-
-    .. _Request and response objects: ../request_response/
-    .. _CSV library docs: http://www.python.org/doc/current/lib/module-csv.html
+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.
 
 Here's an example::
 
@@ -46,7 +36,7 @@ Here's an example::
 The code and comments should be self-explanatory, but a few things deserve a
 mention:
 
-    * The response gets a special mimetype, ``text/csv``. This tells
+    * The response gets a special MIME type, ``text/csv``. This tells
       browsers that the document is a CSV file, rather than an HTML file. If
       you leave this off, browsers will probably interpret the output as HTML,
       which will result in ugly, scary gobbledygook in the browser window.
@@ -56,9 +46,10 @@ mention:
       whatever you want. It'll be used by browsers in the "Save as..."
       dialogue, etc.
 
-    * Hooking into the CSV-generation API is easy: Just pass ``response`` as
-      the first argument to ``csv.writer``. The ``csv.writer`` function expects
-      a file-like object, and ``HttpResponse`` objects fit the bill.
+    * Hooking into the CSV-generation API is easy: Just pass ``response`` as the
+      first argument to ``csv.writer``. The ``csv.writer`` function expects a
+      file-like object, and :class:`~django.http.HttpResponse` objects fit the
+      bill.
 
     * For each row in your CSV file, call ``writer.writerow``, passing it an
       iterable object such as a list or tuple.
@@ -70,12 +61,12 @@ mention:
 Using the template system
 =========================
 
-Alternatively, you can use the `Django template system`_ to generate CSV. This
-is lower-level than using the convenient CSV, but the solution is presented
-here for completeness.
+Alternatively, you can use the :ref:`Django template system <topics-templates>`
+to generate CSV. This is lower-level than using the convenient CSV, but the
+solution is presented here for completeness.
 
 The idea here is to pass a list of items to your template, and have the
-template output the commas in a ``{% for %}`` loop.
+template output the commas in a :ttag:`for` loop.
 
 Here's an example, which generates the same CSV file as above::
 
@@ -105,15 +96,21 @@ The only difference between this example and the previous example is that this
 one uses template loading instead of the CSV module. The rest of the code --
 such as the ``mimetype='text/csv'`` -- is the same.
 
-Then, create the template ``my_template_name.txt``, with this template code::
+Then, create the template ``my_template_name.txt``, with this template code:
+
+.. code-block:: html+django
 
     {% for row in data %}"{{ row.0|addslashes }}", "{{ row.1|addslashes }}", "{{ row.2|addslashes }}", "{{ row.3|addslashes }}", "{{ row.4|addslashes }}"
     {% endfor %}
 
 This template is quite basic. It just iterates over the given data and displays
-a line of CSV for each row. It uses the `addslashes template filter`_ to ensure
-there aren't any problems with quotes. If you can be certain your data doesn't
-have single or double quotes in it, you can remove the ``addslashes`` filters.
+a line of CSV for each row. It uses the :tfilter:`addslashes` template filter to
+ensure there aren't any problems with quotes.
 
-.. _Django template system: ../templates/
-.. _addslashes template filter: ../templates/#addslashes
+Other text-based formats
+========================
+
+Notice that there isn't very much specific to CSV here -- just the specific
+output format. You can use either of these techniques to output any text-based
+format you can dream of. You can also use a similar technique to generate
+arbitrary binary data; see :ref:`howto-outputting-pdf` for an example.
diff --git a/docs/outputting_pdf.txt b/docs/howto/outputting-pdf.txt
similarity index 85%
rename from docs/outputting_pdf.txt
rename to docs/howto/outputting-pdf.txt
index dd8a262812..13e07f8202 100644
--- a/docs/outputting_pdf.txt
+++ b/docs/howto/outputting-pdf.txt
@@ -1,3 +1,5 @@
+.. _howto-outputting-pdf:
+
 ===========================
 Outputting PDFs with Django
 ===========================
@@ -35,15 +37,8 @@ Write your view
 ===============
 
 The key to generating PDFs dynamically with Django is that the ReportLab API
-acts on file-like objects, and Django's ``HttpResponse`` objects are file-like
-objects.
-
-.. admonition:: Note
-
-    For more information on ``HttpResponse`` objects, see
-    `Request and response objects`_.
-
-    .. _Request and response objects: ../request_response/
+acts on file-like objects, and Django's :class:`~django.http.HttpResponse`
+objects are file-like objects.
 
 Here's a "Hello World" example::
 
@@ -70,7 +65,7 @@ Here's a "Hello World" example::
 The code and comments should be self-explanatory, but a few things deserve a
 mention:
 
-    * The response gets a special mimetype, ``application/pdf``. This tells
+    * The response gets a special MIME type, ``application/pdf``. This tells
       browsers that the document is a PDF file, rather than an HTML file. If
       you leave this off, browsers will probably interpret the output as HTML,
       which would result in ugly, scary gobbledygook in the browser window.
@@ -91,7 +86,8 @@ mention:
 
     * Hooking into the ReportLab API is easy: Just pass ``response`` as the
       first argument to ``canvas.Canvas``. The ``Canvas`` class expects a
-      file-like object, and ``HttpResponse`` objects fit the bill.
+      file-like object, and :class:`~django.http.HttpResponse` objects fit the
+      bill.
 
     * Note that all subsequent PDF-generation methods are called on the PDF
       object (in this case, ``p``) -- not on ``response``.
@@ -103,10 +99,9 @@ Complex PDFs
 ============
 
 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``::
+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``::
 
     from cStringIO import StringIO
     from reportlab.pdfgen import canvas
@@ -144,7 +139,7 @@ Further resources
     * PDFlib_ is another PDF-generation library that has Python bindings. To
       use it with Django, just use the same concepts explained in this article.
     * `Pisa HTML2PDF`_ is yet another PDF-generation library. Pisa ships with
-      an example of how to integrate Pisa with Django.
+      an example of how to integrate Pisa with Django.      
     * HTMLdoc_ is a command-line script that can convert HTML to PDF. It
       doesn't have a Python interface, but you can escape out to the shell
       using ``system`` or ``popen`` and retrieve the output in Python.
@@ -154,3 +149,12 @@ Further resources
 .. _`Pisa HTML2PDF`: http://www.htmltopdf.org/
 .. _HTMLdoc: http://www.htmldoc.org/
 .. _forge_fdf in Python: http://www.accesspdf.com/article.php/20050421092951834
+
+Other formats
+=============
+
+Notice that there isn't a lot in these examples that's PDF-specific -- just the
+bits using ``reportlab``. You can use a similar technique to generate any
+arbitrary format that you can find a Python library for. Also see
+:ref:`howto-outputting-csv` for another example and some techniques you can use
+when generated text-based formats.
diff --git a/docs/static_files.txt b/docs/howto/static-files.txt
similarity index 72%
rename from docs/static_files.txt
rename to docs/howto/static-files.txt
index 846c3eb56b..2f4e8fc8f3 100644
--- a/docs/static_files.txt
+++ b/docs/howto/static-files.txt
@@ -1,7 +1,12 @@
+.. _howto-static-files:
+
 =========================
 How to serve static files
 =========================
 
+.. module:: django.views.static
+   :synopsis: Serving of static files during development.
+ 
 Django itself doesn't serve static (media) files, such as images, style sheets,
 or video. It leaves that job to whichever Web server you choose.
 
@@ -9,8 +14,8 @@ The reasoning here is that standard Web servers, such as Apache_ and lighttpd_,
 are much more fine-tuned at serving static files than a Web application
 framework.
 
-With that said, Django does support static files **during development**. Use
-the view ``django.views.static.serve`` to serve media files.
+With that said, Django does support static files **during development**. You can
+use the :func:`django.views.static.serve` view to serve media files.
 
 .. _Apache: http://httpd.apache.org/
 .. _lighttpd: http://www.lighttpd.net/
@@ -22,23 +27,25 @@ Using this method is **inefficient** and **insecure**. Do not use this in a
 production setting. Use this only for development.
 
 For information on serving static files in an Apache production environment,
-see the `Django mod_python documentation`_.
-
-.. _Django mod_python documentation: ../modpython/#serving-media-files
+see the :ref:`Django mod_python documentation <serving-media-files>`.
 
 How to do it
 ============
 
-Just put this in your URLconf_::
+Here's the formal definition of the :func:`~django.views.static.serve` view:
+
+.. function:: def serve(request, path, document_root, show_indexes=False):
+
+To use it, just put this in your :ref:`URLconf <topics-http-urls>`::
 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media'}),
 
 ...where ``site_media`` is the URL where your media will be rooted, and
-``/path/to/media`` is the filesystem root for your media.
+``/path/to/media`` is the filesystem root for your media. This will call the
+:func:`~django.views.static.serve` view, passing in the path from the URLconf
+and the (required) ``document_root`` parameter.
 
-You must pass a ``document_root`` parameter to indicate the filesystem root.
-
-Examples:
+Given the above URLconf:
 
     * The file ``/path/to/media/foo.jpg`` will be made available at the URL
       ``/site_media/foo.jpg``.
@@ -49,26 +56,27 @@ Examples:
     * The file ``/path/bar.jpg`` will not be accessible, because it doesn't
       fall under the document root.
 
-.. _URLconf: ../url_dispatch/
 
 Directory listings
 ==================
 
-Optionally, you can pass a ``show_indexes`` parameter to the ``static.serve``
-view. This is ``False`` by default. If it's ``True``, Django will display file
-listings for directories.
+Optionally, you can pass the ``show_indexes`` parameter to the
+:func:`~django.views.static.serve` view. This is ``False`` by default. If it's
+``True``, Django will display file listings for directories.
 
-Example::
+For example::
 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media', 'show_indexes': True}),
 
 You can customize the index view by creating a template called
-``static/directory_index``. That template gets two objects in its context:
+``static/directory_index.html``. That template gets two objects in its context:
 
     * ``directory`` -- the directory name (a string)
     * ``file_list`` -- a list of file names (as strings) in the directory
 
-Here's the default ``static/directory_index`` template::
+Here's the default ``static/directory_index`` template:
+
+.. code-block:: html+django
 
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -97,7 +105,7 @@ trick to make sure the static-serving view doesn't slip into a production
 setting by mistake.
 
 Do this by wrapping an ``if DEBUG`` statement around the
-``django.views.static.serve`` inclusion. Here's a full example URLconf::
+:func:`django.views.static.serve` inclusion. Here's a full example URLconf::
 
     from django.conf.urls.defaults import *
     from django.conf import settings
@@ -115,11 +123,9 @@ Do this by wrapping an ``if DEBUG`` statement around the
         )
 
 This code is straightforward. It imports the settings and checks the value of
-the ``DEBUG`` setting. If it evaluates to ``True``, then ``site_media`` will be
-associated with the ``django.views.static.serve`` view. If not
-(``DEBUG == False``), then the view won't be made available.
+the :setting:`DEBUG` setting. If it evaluates to ``True``, then ``site_media``
+will be associated with the ``django.views.static.serve`` view. If not, then the
+view won't be made available.
 
 Of course, the catch here is that you'll have to remember to set ``DEBUG=False``
 in your production settings file. But you should be doing that anyway.
-
-.. _DEBUG setting: ../settings/#debug
diff --git a/docs/index.txt b/docs/index.txt
index e7e28a930c..7b339001e5 100644
--- a/docs/index.txt
+++ b/docs/index.txt
@@ -1,134 +1,162 @@
+.. _index:
+
 ====================
-Django Documentation
+Django documentation
 ====================
 
-The essential documentation
-===========================
+.. rubric:: Everything you need to know about Django (and then some).
 
-If you're new to Django, make sure to read the following documentation in
-order.. The rest (in the "reference" section below) can be ready in any order as
-you need various functionality.
+Getting help
+============
 
-.. toctree::
-   :maxdepth: 1
-   
-   overview
-   install
-   tutorial01
-   tutorial02
-   tutorial03
-   tutorial04
-   faq
-   documentation
-   
+Having trouble? We'd like to help!
+
+* Try the :ref:`FAQ <faq-index>` -- it's got answers to many common questions.
+
+* Looking for specific information? Try the :ref:`genindex`, :ref:`modindex` or
+  the :ref:`detailed table of contents <contents>`.
+
+* Search for information in the `archives of the django-users mailing list`_, or
+  `post a question`_
+  
+* Ask a question in the `#django IRC channel`_, or search the `IRC logs`_ to see
+  if its been asked before
+
+* Report bugs with Django in our `ticket tracker`_.
+
+.. _archives of the django-users mailing list: http://groups.google.com/group/django-users/
+.. _post a question: http://groups.google.com/group/django-users/
+.. _#django IRC channel: irc://irc.freenode.net/django
+.. _IRC logs: http://oebfare.com/logger/django/
+.. _ticket tracker: http://code.djangoproject.com/
+
+First steps
+===========
+
+:ref:`Overview <intro-overview>`
+    See what writing a database-driven application with Django looks like.
+    
+:ref:`Installation <intro-install>`
+    Get Django installed on your computer.
+    
+Tutorial: Writing your first Django application
+===============================================
+
+:ref:`Part 1 <intro-tutorial01>`
+    Get set up, create models, and play with the database API.
+    
+:ref:`Part 2 <intro-tutorial02>`
+    Explore the automatically-generated admin site.
+    
+:ref:`Part 3 <intro-tutorial03>`
+    Write the public interface views.
+    
+:ref:`Part 4 <intro-tutorial04>`
+    Learn how to process forms.
+        
+Using Django
+============
+
+:ref:`Models <topics-db-index>`
+    Design a single, definitive source of data about your data.
+    
+:ref:`Handling web requests <topics-http-index>`
+    Handle web requests, map them to views, and return pages.
+    
+:ref:`Forms <topics-forms-index>`
+    Build and handle HTML forms.
+    
+:ref:`Templates <topics-templates>`
+    Develop the visual design of your site.
+    
+And more:
+---------
+
+:ref:`topics-auth` ... :ref:`topics-cache` ... :ref:`topics-email` ...
+:ref:`topics-files` ... :ref:`topics-i18n` ... :ref:`topics-install` ...
+:ref:`topics-pagination` ... :ref:`topics-serialization` ...
+:ref:`topics-settings` ... :ref:`topics-testing`
+    
+Add-on ("contrib") applications
+===============================
+
+:ref:`Django's automatic admin site <ref-contrib-admin>`
+    Get a clean interface to your data with no effort at all.
+    
+:ref:`Form tools <ref-contrib-formtools-index>`
+    Easily handle complex form workflows.
+    
+:ref:`Syndication feeds <ref-contrib-syndication>`
+    Generate RSS and Atom feeds of your data.
+    
+:ref:`"Local flavor" <ref-contrib-localflavor>`
+    Give your site that special local touch.
+    
+And more:
+---------
+
+:ref:`ref-contrib-contenttypes` ... :ref:`ref-contrib-csrf` ...
+:ref:`ref-contrib-databrowse` ... :ref:`ref-contrib-flatpages` ...
+:ref:`ref-contrib-humanize` ... :ref:`ref-contrib-redirects` ...
+:ref:`ref-contrib-sitemaps` ... :ref:`ref-contrib-sites` ...
+:ref:`ref-contrib-webdesign`
+
+Solving specific problems
+=========================
+
+:ref:`Deployment <howto-deployment-index>`
+    Release your project to the world.
+    
+:ref:`Importing data from legacy databases <howto-legacy-databases>`
+    Use Django with an existing database or alongside other web development
+    toolkits.
+
+:ref:`Custom template tags <howto-custom-template-tags>`
+    Add your own extensions to Django's template language.
+    
+:ref:`Generating CSV <howto-outputting-csv>` & :ref:`PDF <howto-outputting-PDF>`
+    Produce non-HTML content with Django.
+    
+And more:
+---------
+
+:ref:`Authenticating in Apache <howto-apache-auth>` ...
+:ref:`howto-custom-file-storage` ... :ref:`howto-custom-management-commands` ...
+:ref:`howto-custom-model-fields` ... :ref:`howto-error-reporting` ...
+:ref:`howto-initial-data` ... :ref:`howto-static-files`
+    
 Reference
 =========
 
-.. toctree::
-   :maxdepth: 1
-   
-   django-admin
-   model-api
-   db-api
-   transactions
-   templates
-   templates_python
-   forms
-   modelforms
-   files
-   upload_handling
-   testing
-   sessions
-   cache
-   settings
-   url_dispatch
-   request_response
-   generic_views
-   authentication
-   shortcuts
-   unicode
-   pagination
-   serialization
-   i18n
-   middleware
-   custom_model_fields
-   databases
-   
-``django.contrib`` add-ons
---------------------------
-
-.. toctree::
-   :maxdepth: 1
-   
-   admin
-   add_ons
-   contenttypes
-   csrf
-   databrowse
-   flatpages
-   form_preview
-   form_wizard
-   localflavor
-   redirects
-   sites
-   sitemaps
-   syndication_feeds
-   webdesign
-   
-Deployment
-----------
-
-.. toctree::
-   :maxdepth: 1
-
-   modpython
-   fastcgi
+:ref:`Settings <ref-settings>`
+    See all of Django's settings and what they do.
     
-Solving specific problems
--------------------------
+:ref:`Request & response objects <ref-request-response>`
+    Understand the classes Django uses to represent HTTP requests and responses.
 
-.. toctree::
-   :maxdepth: 1
-
-   apache_auth
-   static_files
-   email
-   legacy_databases
-   outputting_pdf
-   outputting_csv
+:ref:`Model API reference <ref-models-index>`
+    Revel in the gory details of Django's model system.
+        
+:ref:`Form API reference <ref-forms-index>`
+    Learn the details of forms, fields, and widgets.
     
-Et cetera
+And more:
 ---------
 
-.. toctree::
-   :maxdepth: 1
+:ref:`ref-databases` ... :ref:`ref-django-admin` ... :ref:`ref-files-index` ...
+:ref:`ref-generic-views` ... :ref:`ref-middleware` ...
+:ref:`ref-templates-index` ... :ref:`ref-unicode`
+    
+And all the rest
+================
 
-   design_philosophies
-   contributing
-   admin_css
-   api_stability
-   distributions
+:ref:`Internals <internals-index>`
+    Learn how Django works under the hood, and how you can contribute to the
+    project.
 
-Release notes
--------------
-
-.. toctree::
-   :maxdepth: 1
-
-   release_notes_0.96
-   release_notes_0.95
-   release_notes_1.0_alpha
-   release_notes_1.0_alpha_2
-
-Also see the list of `backwards-incompatible changes`__ for changes made between
-releases.
-
-__ http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
+:ref:`Release notes <releases-index>`
+    See what is and was new in each release of Django.
 
+:ref:`Miscellany <misc-index>`
+    Stuff we can't find a more organized place for. Like that drawer in your
+    kitchen with the scissors, batteries, and duct tape.
diff --git a/docs/internals/_images/djangotickets.png b/docs/internals/_images/djangotickets.png
new file mode 100644
index 0000000000000000000000000000000000000000..34a2a41852579920166184b48338361438c11274
GIT binary patch
literal 52003
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
Bxe@>X

literal 0
HcmV?d00001

diff --git a/docs/contributing.txt b/docs/internals/contributing.txt
similarity index 97%
rename from docs/contributing.txt
rename to docs/internals/contributing.txt
index d0d56a0e39..b96ed4360c 100644
--- a/docs/contributing.txt
+++ b/docs/internals/contributing.txt
@@ -1,3 +1,5 @@
+.. _internals-contributing:
+
 ======================
 Contributing to Django
 ======================
@@ -30,6 +32,8 @@ community. The rest of this document describes the details of how our community
 works and how it handles bugs, mailing lists, and all the other minutiae of
 Django development.
 
+.. _reporting-bugs:
+
 Reporting bugs
 ==============
 
@@ -38,7 +42,7 @@ amount of overhead involved in working with any bug tracking system, so your
 help in keeping our ticket tracker as useful as possible is appreciated.  In
 particular:
 
-    * **Do** read the FAQ_ to see if your issue might be a well-known question.
+    * **Do** read the :ref:`FAQ <faq-index>` to see if your issue might be a well-known question.
 
     * **Do** `search the tracker`_ to see if your issue has already been filed.
 
@@ -74,6 +78,8 @@ particular:
 
 .. _django-updates: http://groups.google.com/group/django-updates
 
+.. _reporting-security-issues:
+
 Reporting security issues
 =========================
 
@@ -231,7 +237,7 @@ ticket is waiting on.
 
 Since a picture is worth a thousand words, let's start there:
 
-.. image:: http://media.djangoproject.com/img/doc/djangotickets.png
+.. image:: _images/djangotickets.png
    :height: 451
    :width: 590
    :alt: Django's ticket workflow
@@ -377,6 +383,8 @@ the ticket database:
       be making a change, don't make the change -- leave a comment with your
       concerns on the ticket, or post a message to `django-developers`_.
 
+.. _contributing-translations:
+
 Submitting and maintaining translations
 =======================================
 
@@ -390,23 +398,22 @@ translated, here's what to do:
 
     * Join the `Django i18n mailing list`_ and introduce yourself.
     * Create translations using the methods described in the
-      `i18n documentation`_.
+      :ref:`i18n documentation <topics-i18n>`.
     * Create a diff of the ``.po`` file against the current Subversion trunk.
     * Make sure that `` django-admin.py compilemessages -l <lang>`` runs without
       producing any warnings.
     * Attach the patch to a ticket in Django's ticket system.
 
 .. _Django i18n mailing list: http://groups.google.com/group/django-i18n/
-.. _i18n documentation: ../i18n/
 
 Coding style
 ============
 
 Please follow these coding standards when writing code for inclusion in Django:
 
-    * Unless otherwise specified, follow `PEP 8`_.
+    * Unless otherwise specified, follow :pep:8.
 
-      You could use  a tool like `pep8.py`_ to check for some problems in this
+      You could use a tool like `pep8.py`_ to check for some problems in this
       area, but remember that PEP 8 is only a guide, so respect the style of
       the surrounding code as a primary goal.
 
@@ -418,8 +425,8 @@ Please follow these coding standards when writing code for inclusion in Django:
     * Use ``InitialCaps`` for class names (or for factory functions that
       return classes).
 
-    * Mark all strings for internationalization; see the `i18n documentation`_
-      for details.
+    * Mark all strings for internationalization; see the :ref:`i18n
+      documentation <topics-i18n>` for details.
 
     * In docstrings, use "action words" such as::
 
@@ -449,11 +456,15 @@ Template style
     * In Django template code, put one (and only one) space between the curly
       brackets and the tag contents.
 
-      Do this::
+      Do this:
+      
+      .. code-block:: html+django
 
           {{ foo }}
 
-      Don't do this::
+      Don't do this:
+      
+      .. code-block:: html+django
 
           {{foo}}
 
@@ -706,15 +717,15 @@ The tests cover:
 We appreciate any and all contributions to the test suite!
 
 The Django tests all use the testing infrastructure that ships with Django for
-testing applications. See `Testing Django applications`_ for an explanation of
-how to write new tests.
-
-.. _Testing Django applications: ../testing/
+testing applications. See :ref:`Testing Django applications <topics-testing>`
+for an explanation of how to write new tests.
 
 Running the unit tests
 ----------------------
 
-To run the tests, ``cd`` to the ``tests/`` directory and type::
+To run the tests, ``cd`` to the ``tests/`` directory and type:
+
+.. code-block:: bash
 
     ./runtests.py --settings=path.to.django.settings
 
@@ -727,13 +738,13 @@ needed. A temporary database will be created in memory when running the tests.
 
 If you're using another backend:
 
-    * Your ``DATABASE_USER`` setting needs to specify an existing user account
+    * Your :setting:`DATABASE_USER` setting needs to specify an existing user account
       for the database engine.
 
-    * The ``DATABASE_NAME`` setting must be the name of an existing database to
+    * The :setting:`DATABASE_NAME` setting must be the name of an existing database to
       which the given user has permission to connect. The unit tests will not
       touch this database; the test runner creates a new database whose name is
-      ``DATABASE_NAME`` prefixed with ``test_``, and this test database is
+      :setting:`DATABASE_NAME` prefixed with ``test_``, and this test database is
       deleted when the tests are finished. This means your user account needs
       permission to execute ``CREATE DATABASE``.
 
@@ -766,7 +777,9 @@ To run a subset of the unit tests, append the names of the test modules to the
 
 As an example, if Django is not in your ``PYTHONPATH``, you placed
 ``settings.py`` in the ``tests/`` directory, and you'd like to only run tests
-for generic relations and internationalization, type::
+for generic relations and internationalization, type:
+
+.. code-block:: bash
 
     PYTHONPATH=..
     ./runtests.py --settings=settings generic_relations i18n
@@ -787,6 +800,7 @@ method as above::
 
     ./runtests.py --settings=settings markup
 
+
 Requesting features
 ===================
 
@@ -854,7 +868,9 @@ To use a branch, you'll need to do two things:
 Getting the code from Subversion
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-To get the latest version of a branch's code, check it out using Subversion::
+To get the latest version of a branch's code, check it out using Subversion:
+
+.. code-block:: bash
 
     svn co http://code.djangoproject.com/svn/django/branches/<branch>/
 
@@ -862,7 +878,9 @@ To get the latest version of a branch's code, check it out using Subversion::
 
 Alternatively, you can automatically convert an existing directory of the
 Django source code as long as you've checked it out via Subversion. To do the
-conversion, execute this command from within your ``django`` directory::
+conversion, execute this command from within your ``django`` directory:
+
+.. code-block:: bash
 
     svn switch http://code.djangoproject.com/svn/django/branches/<branch>/
 
@@ -1025,12 +1043,10 @@ requests for commit access are potential flame-war starters, and will be ignored
 .. _community page: http://www.djangoproject.com/community/
 .. _ticket tracker: http://code.djangoproject.com/newticket
 .. _django-developers: http://groups.google.com/group/django-developers
-.. _FAQ: http://www.djangoproject.com/documentation/faq/
 .. _search the tracker: http://code.djangoproject.com/search
 .. _django-users: http://groups.google.com/group/django-users
 .. _`#django`: irc://irc.freenode.net/django
 .. _list of tickets with patches: http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&has_patch=1&order=priority
-.. _PEP 8: http://www.python.org/peps/pep-0008.html
 .. _pep8.py: http://svn.browsershots.org/trunk/devtools/pep8/pep8.py
 .. _i18n branch: http://code.djangoproject.com/browser/django/branches/i18n
 .. _`tags/releases`: http://code.djangoproject.com/browser/django/tags/releases
diff --git a/docs/internals/documentation.txt b/docs/internals/documentation.txt
new file mode 100644
index 0000000000..ebd62b9a6c
--- /dev/null
+++ b/docs/internals/documentation.txt
@@ -0,0 +1,204 @@
+.. _internals-documentation:
+
+How the Django documentation works
+==================================
+
+\... and how to contribute.
+
+Django's documentation uses the Sphinx__ documentation system, which in turn is
+based on docutils__. The basic idea is that lightly-formatted plain-text
+documentation is transformed into HTML, PDF, and any other output format.
+
+__ http://sphinx.pocoo.org/
+__ http://docutils.sf.net/
+
+To actually build the documentation locally, you'll currently need to install
+Sphinx -- ``easy_install Sphinx`` should do the trick.
+
+Then, building the html is easy; just ``make html`` from the ``docs`` directory.
+
+To get started contributing, you'll want to read the `ReStructuredText
+Primer`__. After that, you'll want to read about the `Sphinx-specific markup`__
+that's used to manage metadata, indexing, and cross-references.
+
+__ http://sphinx.pocoo.org/rest.html
+__ http://sphinx.pocoo.org/markup/
+
+The main thing to keep in mind as you write and edit docs is that the more
+semantic markup you can add the better. So::
+
+    Add ``django.contrib.auth`` to your ``INSTALLED_APPS``...
+    
+Isn't nearly as helpful as::
+
+    Add :mod:`django.contrib.auth` to your :setting:`INSTALLED_APPS`...
+    
+This is because Sphinx will generate proper links for the later, which greatly
+helps readers. There's basically no limit to the amount of useful markup you can
+add.
+
+Django-specific markup
+----------------------
+
+Besides the `Sphinx built-in markup`__, Django's docs defines some extra description units:
+
+__ http://sphinx.pocoo.org/markup/desc.html
+
+    * Settings::
+    
+            .. setting:: INSTALLED_APPS
+                
+      To link to a setting, use ``:setting:`INSTALLED_APPS```.
+      
+    * Template tags::
+   
+            .. templatetag:: regroup
+    
+      To link, use ``:ttag:`regroup```.
+     
+    * Template filters::
+   
+            .. templatefilter:: linebreaksbr
+       
+      To link, use ``:tfilter:`linebreaksbr```.
+      
+    * Field lookups (i.e. ``Foo.objects.filter(bar__exact=whatever)``)::
+    
+            .. fieldlookup:: exact
+            
+      To link, use ``:lookup:`exact```.
+      
+    * ``django-admin`` commands::
+    
+            .. django-admin:: syncdb
+            
+      To link, use ``:djadmin:`syncdb```.
+      
+    * ``django-admin`` command-line options::
+    
+            .. django-admin-option:: --traceback
+            
+      To link, use ``:djadminopt:`--traceback```.
+
+An example
+----------
+
+For a quick example of how it all fits together, check this out:
+
+    * First, the ``ref/settings.txt`` document starts out like this::
+    
+        .. _ref-settings:
+
+        Available settings
+        ==================
+        
+        ...
+        
+    * Next, if you look at the ``topics/settings.txt`` document, you can see how
+      a link to ``ref/settings`` works::
+     
+        Available settings
+        ==================
+
+        For a full list of available settings, see the :ref:`settings reference
+        <ref-settings>`.
+        
+    * Next, notice how the settings (right now just the top few) are annotated::
+   
+        .. setting:: ADMIN_FOR
+
+        ADMIN_FOR
+        ---------
+
+        Default: ``()`` (Empty tuple)
+
+        Used for admin-site settings modules, this should be a tuple of settings
+        modules (in the format ``'foo.bar.baz'``) for which this site is an
+        admin.
+        
+        The admin site uses this in its automatically-introspected
+        documentation of models, views and template tags.
+        
+      This marks up the following header as the "canonical" target for the
+      setting ``ADMIN_FOR`` This means any time I talk about ``ADMIN_FOR``, I
+      can reference it using ``:setting:`ADMIN_FOR```.
+     
+That's basically how everything fits together.
+
+TODO
+----
+
+The work is mostly done, but here's what's left, in rough order of priority.
+
+    * Fix up generic view docs: adapt Chapter 9 of the Django Book (consider
+      this TODO item my permission and license) into
+      ``topics/generic-views.txt``; remove the intro material from
+      ``ref/generic-views.txt`` and just leave the function reference.
+    
+    * Change the "Added/changed in development version" callouts to proper
+      Sphinx ``.. versionadded::`` or ``.. versionchanged::`` directives.
+    
+    * Check for and fix malformed links. Do this by running ``make linkcheck``
+      and fix all of the 300+ errors/warnings.
+      
+      In particular, look at all the relative links; these need to be 
+      changed to proper references.
+      
+    * Most of the various ``index.txt`` documents have *very* short or even
+      non-existent intro text. Each of those documents needs a good short intro
+      the content below that point.
+
+    * The glossary is very perfunctory. It needs to be filled out.
+    
+    * Add more metadata targets: there's lots of places that look like::
+    
+            ``File.close()``
+            ~~~~~~~~~~~~~~~~
+        
+      \... these should be::
+      
+            .. method:: File.close()
+            
+      That is, use metadata instead of titles.
+      
+    * Add more links -- nearly everything that's an inline code literal
+      right now can probably be turned into a xref. 
+      
+      See the ``literals_to_xrefs.py`` file in ``_ext`` -- it's a shell script
+      to help do this work.
+
+      This will probably be a continuing, never-ending project.
+
+    * Add `info field lists`__ where appropriate.
+    
+      __ http://sphinx.pocoo.org/markup/desc.html#info-field-lists
+      
+    * Add ``.. code-block:: <lang>`` to literal blocks so that they get
+      highlighted.
+
+Hints
+-----
+
+Some hints for making things look/read better:
+
+    * Whenever possible, use links. So, use ``:setting:`ADMIN_FOR``` instead of
+      ````ADMIN_FOR````.
+
+    * Some directives (``.. setting::``, for one) are prefix-style directives;
+      they go *before* the unit they're describing. These are known as
+      "crossref" directives. Others (``.. class::``, e.g.) generate their own
+      markup; these should go inside the section they're describing. These are
+      called "description units".
+      
+      You can tell which are which by looking at in :file:`_ext/djangodocs.py`;
+      it registers roles as one of the other.
+      
+    * When referring to classes/functions/modules, etc., you'll want to use the
+      fully-qualified name of the target
+      (``:class:`django.contrib.contenttypes.models.ContentType```). 
+      
+      Since this doesn't look all that awesome in the output -- it shows the
+      entire path to the object -- you can prefix the target with a ``~``
+      (that's a tilde) to get just the "last bit" of that path. So
+      ``:class:`~django.contrib.contenttypes.models.ContentType``` will just
+      display a link with the title "ContentType".
diff --git a/docs/internals/index.txt b/docs/internals/index.txt
new file mode 100644
index 0000000000..b1647e983f
--- /dev/null
+++ b/docs/internals/index.txt
@@ -0,0 +1,22 @@
+.. _internals-index:
+
+Django internals
+================
+
+Documentation for people hacking on Django itself. This is the place to go if
+you'd like to help improve Django, learn or learn about how Django works "under
+the hood".
+
+.. warning::
+
+    Elsewhere in the Django documentation, coverage of a feature is a sort of a
+    contract: once an API is in the official documentation, we consider it
+    "stable" and don't change it without a good reason. APIs covered here,
+    however, are considered "internal-only": we reserve the right to change
+    these internals if we must.
+
+.. toctree::
+   :maxdepth: 1
+   
+   contributing
+   documentation
diff --git a/docs/intro/_images/admin01.png b/docs/intro/_images/admin01.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d746d452c551127743d5e34da4228cc59377785
GIT binary patch
literal 120593
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
Seg}8&I&o&J-~Xkpe*Zs&fOH@L

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin02.png b/docs/intro/_images/admin02.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c122bdce71845ade870af95f4ece3c5cc4c9a6f
GIT binary patch
literal 355419
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%0A7_iTr*fL5Y<4ywo4<ZD>1LW#i=T;mN?;BVqpo0
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
AEdT%j

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin02t.png b/docs/intro/_images/admin02t.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7519d19ab1f22e12e4ff9d72a0aff9913ab1d4d
GIT binary patch
literal 24726
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin03.png b/docs/intro/_images/admin03.png
new file mode 100644
index 0000000000000000000000000000000000000000..77549e7c09a39f219f0d73756bb4d4a4f5a2b33f
GIT binary patch
literal 415869
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin03t.png b/docs/intro/_images/admin03t.png
new file mode 100644
index 0000000000000000000000000000000000000000..94273cb5831b4bc082c2788daef9ca3c3f871ba0
GIT binary patch
literal 28131
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
O0000<MNUMnLSTY$2L!VK

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin04.png b/docs/intro/_images/admin04.png
new file mode 100644
index 0000000000000000000000000000000000000000..4090f892e73c4def356418f30501fae6e2f8af2e
GIT binary patch
literal 397310
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
M|5POKyOQ|70W0g)Z~y=R

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin04t.png b/docs/intro/_images/admin04t.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2ec8bb893c63075a9415019ccd75b589491f8ea
GIT binary patch
literal 22806
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin05.png b/docs/intro/_images/admin05.png
new file mode 100644
index 0000000000000000000000000000000000000000..b424393f562edc16cb22c5b5f7edd00ced2bc961
GIT binary patch
literal 28875
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin05t.png b/docs/intro/_images/admin05t.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5da9504f3cd09a796b6159322c8d5f0eace55b4
GIT binary patch
literal 22754
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin06.png b/docs/intro/_images/admin06.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f24d4e3a4025546c3c61feb241daf2533846dcf
GIT binary patch
literal 22780
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin06t.png b/docs/intro/_images/admin06t.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb65e0aead1f4c9c9828ce0f1f51b7c39e27bf73
GIT binary patch
literal 18156
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
XR1#s*r=_Pp00000NkvXXu0mjfCmA(<

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin07.png b/docs/intro/_images/admin07.png
new file mode 100644
index 0000000000000000000000000000000000000000..b21022f55d0fabb67d84705a496962ff5c571940
GIT binary patch
literal 19804
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
P!3`MbptMUhox=YP3*c4o

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin08.png b/docs/intro/_images/admin08.png
new file mode 100644
index 0000000000000000000000000000000000000000..ddac57e4ae94533554b361a0b12dd9065bbace78
GIT binary patch
literal 31552
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
F{{bJr;E(_S

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin08t.png b/docs/intro/_images/admin08t.png
new file mode 100644
index 0000000000000000000000000000000000000000..83773bb833c4b93f40656eaa75e60910f7949504
GIT binary patch
literal 23883
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
LNkvXXu0mjf?DWVB

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin09.png b/docs/intro/_images/admin09.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba7de1b9d2318ef29893833a6ea66ef1f08e1856
GIT binary patch
literal 16318
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin10.png b/docs/intro/_images/admin10.png
new file mode 100644
index 0000000000000000000000000000000000000000..20b085b5b4ae6894d877b496b5e998e00cb1ca6c
GIT binary patch
literal 5486
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin11.png b/docs/intro/_images/admin11.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c583fd2dca679e96bcfa6f0844a8911a501d82e
GIT binary patch
literal 33563
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin11t.png b/docs/intro/_images/admin11t.png
new file mode 100644
index 0000000000000000000000000000000000000000..af792b899daaf4f155eeb0f3ada75eacd31c885d
GIT binary patch
literal 26365
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin12.png b/docs/intro/_images/admin12.png
new file mode 100644
index 0000000000000000000000000000000000000000..aac5c0d6b5fd299b23a6c1ee368cd67a7179c444
GIT binary patch
literal 12682
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
NvQkQtRpKVW{|5zIv4H>p

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin13.png b/docs/intro/_images/admin13.png
new file mode 100644
index 0000000000000000000000000000000000000000..49a5950409d29943fd19d147659470e4e6907ec8
GIT binary patch
literal 22062
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin13t.png b/docs/intro/_images/admin13t.png
new file mode 100644
index 0000000000000000000000000000000000000000..7dc01e186ae760b2cc4c0497434a117946f14369
GIT binary patch
literal 18690
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
NKw8+E6U@Am{{|IoI%WU>

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin14.png b/docs/intro/_images/admin14.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1f4a5420a2978ac126d647ef01cee52047ecbd3
GIT binary patch
literal 28987
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

literal 0
HcmV?d00001

diff --git a/docs/intro/_images/admin14t.png b/docs/intro/_images/admin14t.png
new file mode 100644
index 0000000000000000000000000000000000000000..86c3accbbd6f70ac1f6ece54c34ea4cc56fbb2c0
GIT binary patch
literal 23460
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
DJRE%?

literal 0
HcmV?d00001

diff --git a/docs/intro/index.txt b/docs/intro/index.txt
new file mode 100644
index 0000000000..2135bc7fe9
--- /dev/null
+++ b/docs/intro/index.txt
@@ -0,0 +1,38 @@
+.. _intro-index:
+
+Getting started
+===============
+
+New to Django? Or to web development in general? Well, you came to the right
+place: read this material to quickly get up and running.
+
+.. toctree::
+   :maxdepth: 1
+    
+   overview
+   install
+   tutorial01
+   tutorial02
+   tutorial03
+   tutorial04
+   whatsnext
+   
+.. seealso::
+
+    If you're new to Python_, you might want to start by getting an idea of what
+    the language is like. Django is 100% Python, so if you've got minimal
+    comfort with Python you'll probably get a lot more out of Django.
+    
+    If you're new to programming entirely, you might want to start with this
+    `list of Python resources for non-programmers`_
+    
+    If you already know a few other languages and want to get up to speed with
+    Python quickly, we recommend `Dive Into Python`_ (also available in a
+    `dead-tree version`_). If that's not quite your style, there are quite
+    a few other `books about Python`_.
+    
+    .. _python: http://python.org/
+    .. _list of Python resources for non-programmers: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
+    .. _dive into python: http://diveintopython.org/
+    .. _dead-tree version: http://www.amazon.com/exec/obidos/ASIN/1590593561/ref=nosim/jacobian20
+    .. _books about Python: http://wiki.python.org/moin/PythonBooks
\ No newline at end of file
diff --git a/docs/intro/install.txt b/docs/intro/install.txt
new file mode 100644
index 0000000000..bb361d52b6
--- /dev/null
+++ b/docs/intro/install.txt
@@ -0,0 +1,75 @@
+.. _intro-install:
+
+Quick install guide
+===================
+
+Before you can use Django, you'll need to get it installed. We have a
+:ref:`complete installation guide <topics-install>` that covers all the
+possibilities; this guide will guide you to a simple, minimal installation
+that'll work while you walk through the introduction.
+
+Install Python
+--------------
+
+Being a Python Web framework, Django requires Python. It works with any Python
+version 2.3 and higher, but we recommend installing Python 2.5 or later. If you do so, you won't need to set up a database just yet: Python 2.5 or later includes a lightweight database called SQLite_.
+
+.. _sqlite: http://sqlite.org/
+
+Get Python at http://www.python.org. If you're running Linux or Mac OS X, you
+probably already have it installed.
+
+You can verify that Python's installed py typing ``python`` from your shell; you should see something like::
+
+    Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17) 
+    [GCC 4.0.1 (Apple Inc. build 5465)] on darwin
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>>
+    
+Set up a database
+-----------------
+
+If you installed Python 2.5 or later, you can skip this step for now.
+
+If not, or if you'd like to work with a "large" database engine like PostgreSQL,
+MySQL, or Oracle, consult the :ref:`database installation information
+<database-installation>`.
+
+Remove any old versions of Django
+---------------------------------
+
+If you are upgrading your installation of Django from a previous version, you
+will need to :ref:`uninstall the old Django version before installing the new
+version <removing-old-versions-of-django>`.
+
+Install Django
+--------------
+
+You've got three easy options to install Django:
+
+    * Install a version of Django :ref:`provided by your operating system
+      distribution <misc-distributions>`. This is the quickest option for those
+      who have operating systems that distribute Django.
+
+    * :ref:`Install an official release <installing-official-release>`. This
+      is the best approach for users who want a stable version number and aren't
+      concerned about running a slightly older version of Django.
+      
+    * :ref:`Install the latest development version
+      <installing-development-version>`. This is best for users who want the
+      latest-and-greatest features and aren't afraid of running brand-new code.
+      
+.. warning::
+
+    If do either of the first two steps, keep an eye out for parts of the
+    documentation marked **new in development version**. That phrase flags
+    features that are only available in development versions of Django; if you
+    try to use them with an official release they won't work.
+    
+That's it!
+----------
+
+That's it -- you can now :ref:`move onto the tutorial <intro-tutorial01>`.
+
+
+
diff --git a/docs/overview.txt b/docs/intro/overview.txt
similarity index 81%
rename from docs/overview.txt
rename to docs/intro/overview.txt
index dae0ffbd76..79ce653106 100644
--- a/docs/overview.txt
+++ b/docs/intro/overview.txt
@@ -1,3 +1,5 @@
+.. _intro-overview:
+
 ==================
 Django at a glance
 ==================
@@ -8,10 +10,9 @@ overview of how to write a database-driven Web app with Django.
 
 The goal of this document is to give you enough technical specifics to
 understand how Django works, but this isn't intended to be a tutorial or
-reference. Please see our more-detailed Django documentation_ when you're ready
-to start a project.
-
-.. _documentation: ../
+reference -- but we've got both! When you're ready to start a project, you can
+:ref:`start with the tutorial <intro-tutorial01>` or :ref:`dive right into more
+detailed documentation <topics-index>`.
 
 Design your model
 =================
@@ -20,9 +21,9 @@ Although you can use Django without a database, it comes with an
 object-relational mapper in which you describe your database layout in Python
 code.
 
-The data-model syntax offers many rich ways of representing your models -- so
-far, it's been solving two years' worth of database-schema problems. Here's a
-quick example::
+The :ref:`data-model syntax <topics-db-models>` offers many rich ways of
+representing your models -- so far, it's been solving two years' worth of
+database-schema problems. Here's a quick example::
 
     class Reporter(models.Model):
         full_name = models.CharField(max_length=70)
@@ -43,18 +44,20 @@ Install it
 ==========
 
 Next, run the Django command-line utility to create the database tables
-automatically::
+automatically:
+
+.. code-block:: bash
 
     manage.py syncdb
 
-The ``syncdb`` command looks at all your available models and creates tables
-in your database for whichever tables don't already exist.
+The :djadmin:`syncdb` command looks at all your available models and creates
+tables in your database for whichever tables don't already exist.
 
 Enjoy the free API
 ==================
 
-With that, you've got a free, and rich, Python API to access your data. The API
-is created on the fly, no code generation necessary::
+With that, you've got a free, and rich, :ref:`Python API <topics-db-queries>` to
+access your data. The API is created on the fly, no code generation necessary::
 
     >>> from mysite.models import Reporter, Article
 
@@ -128,15 +131,16 @@ A dynamic admin interface: it's not just scaffolding -- it's the whole house
 ============================================================================
 
 Once your models are defined, Django can automatically create a professional,
-production ready administrative interface -- a Web site that lets authenticated
-users add, change and delete objects. It's as easy as adding a line of code to
-your model classes::
+production ready :ref:`administrative interface <ref-contrib-admin>` -- a Web
+site that lets authenticated users add, change and delete objects. It's as easy
+as adding a line of code to your model classes::
 
     class Article(models.Model):
         pub_date = models.DateTimeField()
         headline = models.CharField(max_length=200)
         content = models.TextField()
         reporter = models.ForeignKey(Reporter)
+        
         class Admin: pass
 
 The philosophy here is that your site is edited by a staff, or a client, or
@@ -154,10 +158,10 @@ A clean, elegant URL scheme is an important detail in a high-quality Web
 application. Django encourages beautiful URL design and doesn't put any cruft
 in URLs, like ``.php`` or ``.asp``.
 
-To design URLs for an app, you create a Python module called a URLconf. A table
-of contents for your app, it contains a simple mapping between URL patterns and
-Python callback functions. URLconfs also serve to decouple URLs from Python
-code.
+To design URLs for an app, you create a Python module called a :ref:`URLconf
+<topics-http-urls>`. A table of contents for your app, it contains a simple mapping
+between URL patterns and Python callback functions. URLconfs also serve to
+decouple URLs from Python code.
 
 Here's what a URLconf might look like for the ``Reporter``/``Article``
 example above::
@@ -190,8 +194,9 @@ Write your views
 ================
 
 Each view is responsible for doing one of two things: Returning an
-``HttpResponse`` object containing the content for the requested page, or
-raising an exception such as ``Http404``. The rest is up to you.
+:class:`~django.http.HttpResponse` object containing the content for the
+requested page, or raising an exception such as :class:`~django.http.Http404`.
+The rest is up to you.
 
 Generally, a view retrieves data according to the parameters, loads a template
 and renders the template with the retrieved data. Here's an example view for
@@ -201,8 +206,9 @@ and renders the template with the retrieved data. Here's an example view for
         a_list = Article.objects.filter(pub_date__year=year)
         return render_to_response('news/year_archive.html', {'year': year, 'article_list': a_list})
 
-This example uses Django's template system, which has several powerful
-features but strives to stay simple enough for non-programmers to use.
+This example uses Django's :ref:`template system <topics-templates>`, which has
+several powerful features but strives to stay simple enough for non-programmers
+to use.
 
 Design your templates
 =====================
@@ -215,7 +221,9 @@ for templates. If a template doesn't exist in the first directory, it checks the
 second, and so on.
 
 Let's say the ``news/article_detail.html`` template was found. Here's what that
-might look like::
+might look like:
+
+.. code-block:: html+django
 
     {% extends "base.html" %}
 
@@ -252,7 +260,9 @@ Finally, Django uses the concept of "template inheritance": That's what the
 following blocks." In short, that lets you dramatically cut down on redundancy
 in templates: each template has to define only what's unique to that template.
 
-Here's what the "base.html" template might look like::
+Here's what the "base.html" template might look like:
+
+.. code-block:: html+django
 
     <html>
     <head>
@@ -287,17 +297,18 @@ This is just the surface
 This has been only a quick overview of Django's functionality. Some more useful
 features:
 
-    * A caching framework that integrates with memcached or other backends.
-    * A `syndication framework`_ that makes creating RSS and Atom feeds as easy as
-      writing a small Python class.
+    * A :ref:`caching framework <topics-cache>` that integrates with memcached
+      or other backends.
+
+    * A :ref:`syndication framework <ref-contrib-syndication>` that makes
+      creating RSS and Atom feeds as easy as writing a small Python class.
+
     * More sexy automatically-generated admin features -- this overview barely
       scratched the surface.
 
-.. _syndication framework: ../syndication_feeds/
-
-The next obvious steps are for you to `download Django`_, read `the tutorial`_
-and join `the community`_. Thanks for your interest!
+The next obvious steps are for you to `download Django`_, read :ref:`the
+tutorial <intro-tutorial01>` and join `the community`_. Thanks for your
+interest!
 
 .. _download Django: http://www.djangoproject.com/download/
-.. _the tutorial: ../tutorial01/
 .. _the community: http://www.djangoproject.com/community/
diff --git a/docs/tutorial01.txt b/docs/intro/tutorial01.txt
similarity index 51%
rename from docs/tutorial01.txt
rename to docs/intro/tutorial01.txt
index 6d7b10a053..08ebe1adbb 100644
--- a/docs/tutorial01.txt
+++ b/docs/intro/tutorial01.txt
@@ -1,3 +1,5 @@
+.. _intro-tutorial01:
+
 =====================================
 Writing your first Django app, part 1
 =====================================
@@ -12,71 +14,70 @@ It'll consist of two parts:
     * A public site that lets people view polls and vote in them.
     * An admin site that lets you add, change and delete polls.
 
-We'll assume you have `Django installed`_ already. You can tell Django is
-installed by running the Python interactive interpreter and typing
-``import django``. If that command runs successfully, with no errors, Django is
-installed.
-
-.. _`Django installed`: ../install/
+We'll assume you have :ref:`Django installed <intro-install>` already. You can
+tell Django is installed by running the Python interactive interpreter and
+typing ``import django``. If that command runs successfully, with no errors,
+Django is installed.
 
 .. admonition:: Where to get help:
 
     If you're having trouble going through this tutorial, please post a message
-    to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` to chat
+    to `django-users`__ or drop by `#django on irc.freenode.net`__ to chat
     with other Django users who might be able to help.
 
-.. _django-users: http://groups.google.com/group/django-users
-.. _#django: irc://irc.freenode.net/django
+__ http://groups.google.com/group/django-users
+__ irc://irc.freenode.net/django
 
 Creating a project
 ==================
 
 If this is your first time using Django, you'll have to take care of some
-initial setup. Namely, you'll need to auto-generate some code that establishes
-a Django *project* -- a collection of settings for an instance of Django,
+initial setup. Namely, you'll need to auto-generate some code that establishes a
+Django :term:`project` -- a collection of settings for an instance of Django,
 including database configuration, Django-specific options and
 application-specific settings.
 
 From the command line, ``cd`` into a directory where you'd like to store your
-code, then run the command ``django-admin.py startproject mysite``. This
-will create a ``mysite`` directory in your current directory.
+code, then run the command ``django-admin.py startproject mysite``. This will
+create a ``mysite`` directory in your current directory.
 
 .. admonition:: Mac OS X permissions
    
-   If you're using Mac OS X, you may see the message "permission
-   denied" when you try to run ``django-admin.py startproject``. This
-   is because, on Unix-based systems like OS X, a file must be marked
-   as "executable" before it can be run as a program. To do this, open
-   Terminal.app and navigate (using the ``cd`` command) to the directory
-   where ``django-admin.py`` is installed, then run the command
+   If you're using Mac OS X, you may see the message "permission denied" when
+   you try to run ``django-admin.py startproject``. This is because, on
+   Unix-based systems like OS X, a file must be marked as "executable" before it
+   can be run as a program. To do this, open Terminal.app and navigate (using
+   the ``cd`` command) to the directory where :ref:`django-admin.py
+   <ref-django-admin>` is installed, then run the command 
    ``chmod +x django-admin.py``.
 
 .. note::
 
     You'll need to avoid naming projects after built-in Python or Django
     components. In particular, this means you should avoid using names like
-    ``django`` (which will conflict with Django itself) or ``site`` (which
+    ``django`` (which will conflict with Django itself) or ``test`` (which
     conflicts with a built-in Python package).
 
-(``django-admin.py`` should be on your system path if you installed Django via
-``python setup.py``. If it's not on your path, you can find it in
-``site-packages/django/bin``, where ``site-packages`` is a directory within
-your Python installation. Consider symlinking to ``django-admin.py`` from some
-place on your path, such as ``/usr/local/bin``.)
+:ref:`django-admin.py <ref-django-admin>` should be on your system path if you
+installed Django via ``python setup.py``. If it's not on your path, you can find
+it in ``site-packages/django/bin``, where ```site-packages``` is a directory
+within your Python installation. Consider symlinking to :ref:`django-admin.py
+<ref-django-admin>` from some place on your path, such as
+:file:`/usr/local/bin`.
 
 .. admonition:: Where should this code live?
 
     If your background is in PHP, you're probably used to putting code under the
     Web server's document root (in a place such as ``/var/www``). With Django,
-    you don't do that. It's not a good idea to put any of this Python code within
-    your Web server's document root, because it risks the possibility that
-    people may be able to view your code over the Web. That's not good for
+    you don't do that. It's not a good idea to put any of this Python code
+    within your Web server's document root, because it risks the possibility
+    that people may be able to view your code over the Web. That's not good for
     security.
 
     Put your code in some directory **outside** of the document root, such as
-    ``/home/mycode``.
+    :file:`/home/mycode`.
 
-Let's look at what ``startproject`` created::
+Let's look at what :djadmin:`startproject` created::
 
     mysite/
         __init__.py
@@ -86,28 +87,34 @@ Let's look at what ``startproject`` created::
 
 These files are:
 
-    * ``__init__.py``: An empty file that tells Python that this directory
+    * :file:`__init__.py`: An empty file that tells Python that this directory
       should be considered a Python package. (Read `more about packages`_ in the
       official Python docs if you're a Python beginner.)
-    * ``manage.py``: A command-line utility that lets you interact with this
-      Django project in various ways.
-    * ``settings.py``: Settings/configuration for this Django project.
-    * ``urls.py``: The URL declarations for this Django project; a "table of
-      contents" of your Django-powered site.
+      
+    * :file:`manage.py`: A command-line utility that lets you interact with this
+      Django project in various ways. You can read all the details about
+      :file:`manage.py` in :ref:`ref-django-admin`.
+      
+    * :file:`settings.py`: Settings/configuration for this Django project.
+      :ref:`topics-settings` will tell you all about how settings work.
+    
+    * :file:`urls.py`: The URL declarations for this Django project; a "table of
+      contents" of your Django-powered site. You can read more about URLs in
+      :ref:`topics-http-urls`.
 
 .. _more about packages: http://docs.python.org/tut/node8.html#packages
 
 The development server
 ----------------------
 
-Let's verify this worked. Change into the ``mysite`` directory, if you
+Let's verify this worked. Change into the :file:`mysite` directory, if you
 haven't already, and run the command ``python manage.py runserver``. You'll see
 the following output on the command line::
 
     Validating models...
     0 errors found.
 
-    Django version 0.95, using settings 'mysite.settings'
+    Django version 0.96, using settings 'mysite.settings'
     Development server is running at http://127.0.0.1:8000/
     Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
 
@@ -126,40 +133,49 @@ It worked!
 
 .. admonition:: Changing the port
 
-    By default, the ``runserver`` command starts the development server on port
-    8000. If you want to change the server's port, pass it as a command-line
-    argument. For instance, this command starts the server on port 8080::
+    By default, the :djadmin:`runserver` command starts the development server
+    on port 8000. If you want to change the server's port, pass it as a
+    command-line argument. For instance, this command starts the server on port
+    8080:
+    
+    .. code-block:: bash
 
         python manage.py runserver 8080
 
-    Full docs for the development server are at `django-admin documentation`_.
+    Full docs for the development server can be found in the
+    :djadmin:`runserver` reference.
 
-.. _django-admin documentation: ../django-admin/
 
 Database setup
 --------------
 
-Now, edit ``settings.py``. It's a normal Python module with module-level
+Now, edit :file:`settings.py`. It's a normal Python module with module-level
 variables representing Django settings. Change these settings to match your
 database's connection parameters:
 
-    * ``DATABASE_ENGINE`` -- Either 'postgresql_psycopg2', 'mysql' or 'sqlite3'.
-      Other backends are `also available`_.
-    * ``DATABASE_NAME`` -- The name of your database. If you're using
-      SQLite, the database will be a file on your computer; in that
-      case, ``DATABASE_NAME`` should be the full absolute path,
-      including filename, of that file. If the file doesn't exist, it
-      will automatically be created when you synchronize the database
-      for the first time (see below).
-    * ``DATABASE_USER`` -- Your database username (not used for SQLite).
-    * ``DATABASE_PASSWORD`` -- Your database password (not used for SQLite).
-    * ``DATABASE_HOST`` -- The host your database is on. Leave this as an
-      empty string if your database server is on the same physical machine
-      (not used for SQLite).
+    * :setting:`DATABASE_ENGINE` -- Either 'postgresql_psycopg2', 'mysql' or
+      'sqlite3'. Other backends are :setting:`also available <DATABASE_ENGINE>`.
+      
+    * :setting:`DATABASE_NAME` -- The name of your database. If you're using
+      SQLite, the database will be a file on your computer; in that case,
+      ``DATABASE_NAME`` should be the full absolute path, including filename, of
+      that file. If the file doesn't exist, it will automatically be created
+      when you synchronize the database for the first time (see below).
+      
+    * :setting:`DATABASE_USER` -- Your database username (not used for SQLite).
+    
+    * :setting:`DATABASE_PASSWORD` -- Your database password (not used for
+      SQLite).
+    
+    * :setting:`DATABASE_HOST` -- The host your database is on. Leave this as an
+      empty string if your database server is on the same physical machine (not
+      used for SQLite).
 
-.. _also available: ../settings/
+If you're new to databases, we recommend simply using SQLite (by setting
+:setting:`DATABASE_ENGINE` to ``'sqlite3'``). SQLite is included as part of
+Python 2.5 and later, so you won't need to install anything else.
 
-.. admonition:: Note
+.. note::
 
     If you're using PostgreSQL or MySQL, make sure you've created a database by
     this point. Do that with "``CREATE DATABASE database_name;``" within your
@@ -168,35 +184,39 @@ database's connection parameters:
     If you're using SQLite, you don't need to create anything beforehand - the
     database file will be created automatically when it is needed.
 
-While you're editing ``settings.py``, take note of the ``INSTALLED_APPS``
-setting towards the bottom of the file. That variable holds the names of all
-Django applications that are activated in this Django instance. Apps can be
-used in multiple projects, and you can package and distribute them for use
-by others in their projects.
+While you're editing :file:`settings.py`, take note of the
+:setting:`INSTALLED_APPS` setting towards the bottom of the file. That variable
+holds the names of all Django applications that are activated in this Django
+instance. Apps can be used in multiple projects, and you can package and
+distribute them for use by others in their projects.
 
-By default, ``INSTALLED_APPS`` contains the following apps, all of which come
-with Django:
+By default, :setting:`INSTALLED_APPS` contains the following apps, all of which
+come with Django:
 
-    * ``django.contrib.auth`` -- An authentication system.
-    * ``django.contrib.contenttypes`` -- A framework for content types.
-    * ``django.contrib.sessions`` -- A session framework.
-    * ``django.contrib.sites`` -- A framework for managing multiple sites
+    * :mod:`django.contrib.auth` -- An authentication system.
+
+    * :mod:`django.contrib.contenttypes` -- A framework for content types.
+
+    * :mod:`django.contrib.sessions` -- A session framework.
+
+    * :mod:`django.contrib.sites` -- A framework for managing multiple sites
       with one Django installation.
 
-These applications are included by default as a convenience for the common
-case.
+These applications are included by default as a convenience for the common case.
 
 Each of these applications makes use of at least one database table, though,
 so we need to create the tables in the database before we can use them. To do
-that, run the following command::
+that, run the following command:
+
+.. code-block:: bash
 
     python manage.py syncdb
 
-The ``syncdb`` command looks at the ``INSTALLED_APPS`` setting and creates any
-necessary database tables according to the database settings in your
-``settings.py`` file. You'll see a message for each database table it creates,
-and you'll get a prompt asking you if you'd like to create a superuser account
-for the authentication system. Go ahead and do that.
+The :djadmin:`syncdb` command looks at the :setting:`INSTALLED_APPS` setting and
+creates any necessary database tables according to the database settings in your
+:file:`settings.py` file. You'll see a message for each database table it
+creates, and you'll get a prompt asking you if you'd like to create a superuser
+account for the authentication system. Go ahead and do that.
 
 If you're interested, run the command-line client for your database and type
 ``\dt`` (PostgreSQL), ``SHOW TABLES;`` (MySQL), or ``.schema`` (SQLite) to
@@ -207,8 +227,11 @@ display the tables Django created.
     Like we said above, the default applications are included for the common
     case, but not everybody needs them. If you don't need any or all of them,
     feel free to comment-out or delete the appropriate line(s) from
-    ``INSTALLED_APPS`` before running ``syncdb``. The ``syncdb`` command will
-    only create tables for apps in ``INSTALLED_APPS``.
+    :setting:`INSTALLED_APPS` before running :djadmin:`syncdb`. The
+    :djadmin:`syncdb` command will only create tables for apps in
+    :setting:`INSTALLED_APPS`.
+
+.. _creating-models:
 
 Creating models
 ===============
@@ -229,17 +252,19 @@ so you can focus on writing code rather than creating directories.
     configuration and apps for a particular Web site. A project can contain
     multiple apps. An app can be in multiple projects.
 
-In this tutorial, we'll create our poll app in the ``mysite`` directory,
+In this tutorial, we'll create our poll app in the :file:`mysite` directory,
 for simplicity. As a consequence, the app will be coupled to the project --
 that is, Python code within the poll app will refer to ``mysite.polls``.
 Later in this tutorial, we'll discuss decoupling your apps for distribution.
 
-To create your app, make sure you're in the ``mysite`` directory and type
-this command::
+To create your app, make sure you're in the :file:`mysite` directory and type
+this command:
+
+.. code-block:: bash
 
     python manage.py startapp polls
 
-That'll create a directory ``polls``, which is laid out like this::
+That'll create a directory :file:`polls`, which is laid out like this::
 
     polls/
         __init__.py
@@ -253,17 +278,17 @@ The first step in writing a database Web app in Django is to define your models
 
 .. admonition:: Philosophy
 
-   A model is the single, definitive source of data about your
-   data. It contains the essential fields and behaviors of the data you're
-   storing. Django follows the `DRY Principle`_. The goal is to define your
-   data model in one place and automatically derive things from it.
+   A model is the single, definitive source of data about your data. It contains
+   the essential fields and behaviors of the data you're storing. Django follows
+   the :ref:`DRY Principle <dry>`. The goal is to define your data model in one
+   place and automatically derive things from it.
 
 In our simple poll app, we'll create two models: polls and choices. A poll has
 a question and a publication date. A choice has two fields: the text of the
 choice and a vote tally. Each choice is associated with a poll.
 
 These concepts are represented by simple Python classes. Edit the
-``polls/models.py`` file so it looks like this::
+:file:`polls/models.py` file so it looks like this::
 
     from django.db import models
 
@@ -276,51 +301,54 @@ These concepts are represented by simple Python classes. Edit the
         choice = models.CharField(max_length=200)
         votes = models.IntegerField()
 
-.. admonition:: Errors about ``max_length``
+.. admonition:: Errors about :attr:`~django.db.models.Field.max_length`
 
-   If Django gives you an error message saying that ``max_length`` is
-   not a valid argument, you're most likely using an old version of
-   Django. (This version of the tutorial is written for the latest
-   development version of Django.) If you're using a Subversion checkout
-   of Django's development version (see `the installation docs`_ for
-   more information), you shouldn't have any problems.
+   If Django gives you an error message saying that
+   :attr:`~django.db.models.Field.max_length` is not a valid argument, you're
+   most likely using an old version of Django. (This version of the tutorial is
+   written for the latest development version of Django.) If you're using a
+   Subversion checkout of Django's development version (see :ref:`the
+   installation docs <topics-install>` for more information), you shouldn't have
+   any problems.
 
-   If you want to stick with an older version of Django, you'll want to
-   switch to `the Django 0.96 tutorial`_, because this tutorial covers
-   several features that only exist in the Django development version.
+   If you want to stick with an older version of Django, you'll want to switch
+   to `the Django 0.96 tutorial`_, because this tutorial covers several features
+   that only exist in the Django development version.
 
-.. _the installation docs: ../install/
-.. _the Django 0.96 tutorial: ../0.96/tutorial01/
+.. _the Django 0.96 tutorial: http://www.djangoproject.com/documentation/0.96/tutorial01/
 
 The code is straightforward. Each model is represented by a class that
-subclasses ``django.db.models.Model``. Each model has a number of class
+subclasses :class:`django.db.models.Model`. Each model has a number of class
 variables, each of which represents a database field in the model.
 
-Each field is represented by an instance of a ``models.*Field`` class -- e.g.,
-``models.CharField`` for character fields and ``models.DateTimeField`` for
-datetimes. This tells Django what type of data each field holds.
+Each field is represented by an instance of a :class:`~django.db.models.Field`
+class -- e.g., :class:`~django.db.models.CharField` for character fields and
+:class:`~django.db.models.DateTimeField` for datetimes. This tells Django what
+type of data each field holds.
 
-The name of each ``models.*Field`` instance (e.g. ``question`` or ``pub_date`` )
-is the field's name, in machine-friendly format. You'll use this value in your
-Python code, and your database will use it as the column name.
+The name of each :class:`~django.db.models.Field` instance (e.g. ``question`` or
+``pub_date`` ) is the field's name, in machine-friendly format. You'll use this
+value in your Python code, and your database will use it as the column name.
 
-You can use an optional first positional argument to a ``Field`` to designate a
-human-readable name. That's used in a couple of introspective parts of Django,
-and it doubles as documentation. If this field isn't provided, Django will use
-the machine-readable name. In this example, we've only defined a human-readable
-name for ``Poll.pub_date``. For all other fields in this model, the field's
-machine-readable name will suffice as its human-readable name.
+You can use an optional first positional argument to a
+:class:`~django.db.models.Field` to designate a human-readable name. That's used
+in a couple of introspective parts of Django, and it doubles as documentation.
+If this field isn't provided, Django will use the machine-readable name. In this
+example, we've only defined a human-readable name for ``Poll.pub_date``. For all
+other fields in this model, the field's machine-readable name will suffice as
+its human-readable name.
 
-Some ``Field`` classes have required elements. ``CharField``, for example,
-requires that you give it a ``max_length``. That's used not only in the database
+Some :class:`~django.db.models.Field` classes have required elements.
+:class:`~django.db.models.CharField`, for example, requires that you give it a
+:attr:`~django.db.models.Field.max_length`. That's used not only in the database
 schema, but in validation, as we'll soon see.
 
-Finally, note a relationship is defined, using ``models.ForeignKey``. That tells
-Django each Choice is related to a single Poll. Django supports all the common
-database relationships: many-to-ones, many-to-manys and one-to-ones.
+Finally, note a relationship is defined, using
+:class:`~django.db.models.ForeignKey`. That tells Django each Choice is related
+to a single Poll. Django supports all the common database relationships:
+many-to-ones, many-to-manys and one-to-ones.
 
 .. _`Python path`: http://docs.python.org/tut/node8.html#SECTION008110000000000000000
-.. _DRY Principle: http://c2.com/cgi/wiki?DontRepeatYourself
 
 Activating models
 =================
@@ -339,8 +367,9 @@ But first we need to tell our project that the ``polls`` app is installed.
     you can distribute apps, because they don't have to be tied to a given
     Django installation.
 
-Edit the ``settings.py`` file again, and change the ``INSTALLED_APPS`` setting
-to include the string ``'mysite.polls'``. So it'll look like this::
+Edit the :file:`settings.py` file again, and change the
+:setting:`INSTALLED_APPS` setting to include the string ``'mysite.polls'``. So
+it'll look like this::
 
     INSTALLED_APPS = (
         'django.contrib.auth',
@@ -350,12 +379,17 @@ to include the string ``'mysite.polls'``. So it'll look like this::
         'mysite.polls'
     )
 
-Now Django knows ``mysite`` includes the ``polls`` app. Let's run another command::
+Now Django knows ``mysite`` includes the ``polls`` app. Let's run another
+command:
+
+.. code-block:: bash
 
     python manage.py sql polls
 
-You should see something similar to the following (the CREATE TABLE SQL statements
-for the polls app)::
+You should see something similar to the following (the ``CREATE TABLE`` SQL
+statements for the polls app):
+
+.. code-block:: sql
 
     BEGIN;
     CREATE TABLE "polls_poll" (
@@ -384,7 +418,8 @@ Note the following:
     * By convention, Django appends ``"_id"`` to the foreign key field name.
       Yes, you can override this, as well.
 
-    * The foreign key relationship is made explicit by a ``REFERENCES`` statement.
+    * The foreign key relationship is made explicit by a ``REFERENCES``
+      statement.
 
     * It's tailored to the database you're using, so database-specific field
       types such as ``auto_increment`` (MySQL), ``serial`` (PostgreSQL), or
@@ -393,53 +428,58 @@ Note the following:
       quotes. The author of this tutorial runs PostgreSQL, so the example
       output is in PostgreSQL syntax.
 
-    * The ``sql`` command doesn't actually run the SQL in your database - it just
-      prints it to the screen so that you can see what SQL Django thinks is required.
-      If you wanted to, you could copy and paste this SQL into your database prompt.
-      However, as we will see shortly, Django provides an easier way of committing
-      the SQL to the database.
+    * The :djadmin:`sql` command doesn't actually run the SQL in your database -
+      it just prints it to the screen so that you can see what SQL Django thinks
+      is required. If you wanted to, you could copy and paste this SQL into your
+      database prompt. However, as we will see shortly, Django provides an
+      easier way of committing the SQL to the database.
 
 If you're interested, also run the following commands:
-    * ``python manage.py validate`` -- Checks for any errors in the
-      construction of your models.
 
-    * ``python manage.py sqlcustom polls`` -- Outputs any custom SQL statements
-      (such as table modifications or constraints) that are defined for the
-      application.
+    * :djadmin:`python manage.py validate <validate>` -- Checks for any errors
+      in the construction of your models.
 
-    * ``python manage.py sqlclear polls`` -- Outputs the necessary ``DROP
-      TABLE`` statements for this app, according to which tables already exist
-      in your database (if any).
+    * :djadmin:`python manage.py sqlcustom polls <sqlcustom>` -- Outputs any
+      :ref:`custom SQL statements <initial-sql>` (such as table modifications or
+      constraints) that are defined for the application.
 
-    * ``python manage.py sqlindexes polls`` -- Outputs the ``CREATE INDEX``
-      statements for this app.
+    * :djadmin:`python manage.py sqlclear polls <sqlclear>` -- Outputs the
+      necessary ``DROP TABLE`` statements for this app, according to which
+      tables already exist in your database (if any).
 
-    * ``python manage.py sqlall polls`` -- A combination of all the SQL from
-      the 'sql', 'sqlcustom', and 'sqlindexes' commands.
+    * :djadmin:`python manage.py sqlindexes polls <sqlindexes>` -- Outputs the
+      ``CREATE INDEX`` statements for this app.
+
+    * :djadmin:`python manage.py sqlall polls <sqlall>` -- A combination of all
+      the SQL from the :djadmin:`sql`, :djadmin:`sqlcustom`, and
+      :djadmin:`sqlindexes` commands.
 
 Looking at the output of those commands can help you understand what's actually
 happening under the hood.
 
-Now, run ``syncdb`` again to create those model tables in your database::
+Now, run :djadmin:`syncdb` again to create those model tables in your database:
+
+.. code-block:: bash
 
     python manage.py syncdb
 
-The ``syncdb`` command runs the sql from 'sqlall' on your database for all apps
-in ``INSTALLED_APPS`` that don't already exist in your database. This creates
-all the tables, initial data and indexes for any apps you have added to your
-project since the last time you ran syncdb. ``syncdb`` can be called as often
-as you like, and it will only ever create the tables that don't exist.
+The :djadmin:`syncdb` command runs the sql from 'sqlall' on your database for
+all apps in :setting:`INSTALLED_APPS` that don't already exist in your database.
+This creates all the tables, initial data and indexes for any apps you have
+added to your project since the last time you ran syncdb. :djadmin:`syncdb` can
+be called as often as you like, and it will only ever create the tables that
+don't exist.
 
-Read the `django-admin.py documentation`_ for full information on what the
-``manage.py`` utility can do.
-
-.. _django-admin.py documentation: ../django-admin/
+Read the :ref:`django-admin.py documentation <ref-django-admin>` for full
+information on what the ``manage.py`` utility can do.
 
 Playing with the API
 ====================
 
 Now, let's hop into the interactive Python shell and play around with the free
-API Django gives you. To invoke the Python shell, use this command::
+API Django gives you. To invoke the Python shell, use this command:
+
+.. code-block:: bash
 
     python manage.py shell
 
@@ -449,28 +489,28 @@ things:
 
     * Putting ``mysite`` on ``sys.path``. For flexibility, several pieces of
       Django refer to projects in Python dotted-path notation (e.g.
-      ``'mysite.polls.models'``). In order for this to work, the
-      ``mysite`` package has to be on ``sys.path``.
+      ``'mysite.polls.models'``). In order for this to work, the ``mysite``
+      package has to be on ``sys.path``.
 
-      We've already seen one example of this: the ``INSTALLED_APPS`` setting is
-      a list of packages in dotted-path notation.
+      We've already seen one example of this: the :setting:`INSTALLED_APPS`
+      setting is a list of packages in dotted-path notation.
 
     * Setting the ``DJANGO_SETTINGS_MODULE`` environment variable, which gives
       Django the path to your ``settings.py`` file.
 
 .. admonition:: Bypassing manage.py
 
-    If you'd rather not use ``manage.py``, no problem. Just make sure
-    ``mysite`` is at the root level on the Python path (i.e.,
-    ``import mysite`` works) and set the ``DJANGO_SETTINGS_MODULE``
-    environment variable to ``mysite.settings``.
+    If you'd rather not use ``manage.py``, no problem. Just make sure ``mysite``
+    is at the root level on the Python path (i.e., ``import mysite`` works) and
+    set the ``DJANGO_SETTINGS_MODULE`` environment variable to
+    ``mysite.settings``.
 
-    For more information on all of this, see the `django-admin.py documentation`_.
+    For more information on all of this, see the :ref:`django-admin.py
+    documentation <ref-django-admin>`.
 
-Once you're in the shell, explore the database API::
+Once you're in the shell, explore the :ref:`database API <topics-db-queries>`::
 
-    # Import the model classes we just wrote.
-    >>> from mysite.polls.models import Poll, Choice
+    >>> from mysite.polls.models import Poll, Choice # Import the model classes we just wrote.
 
     # No polls are in the system yet.
     >>> Poll.objects.all()
@@ -505,10 +545,11 @@ Once you're in the shell, explore the database API::
     [<Poll: Poll object>]
 
 
-Wait a minute. ``<Poll: Poll object>`` is, utterly, an unhelpful
-representation of this object. Let's fix that by editing the polls model (in
-the ``polls/models.py`` file) and adding a ``__unicode__()`` method to both
-``Poll`` and ``Choice``::
+Wait a minute. ``<Poll: Poll object>`` is, utterly, an unhelpful representation
+of this object. Let's fix that by editing the polls model (in the
+``polls/models.py`` file) and adding a
+:meth:`~django.db.models.Model.__unicode__` method to both ``Poll`` and
+``Choice``::
 
     class Poll(models.Model):
         # ...
@@ -520,43 +561,46 @@ the ``polls/models.py`` file) and adding a ``__unicode__()`` method to both
         def __unicode__(self):
             return self.choice
 
-.. admonition:: If ``__unicode__()`` doesn't seem to work
+.. admonition:: If :meth:`~django.db.models.Model.__unicode__` doesn't seem to work
 
-   If you add the ``__unicode__()`` method to your models and don't
-   see any change in how they're represented, you're most likely using
-   an old version of Django. (This version of the tutorial is written
-   for the latest development version of Django.) If you're using a
-   Subversion checkout of of Django's development version (see `the
-   installation docs`_ for more information), you shouldn't have any
-   problems.
+   If you add the :meth:`~django.db.models.Model.__unicode__` method to your
+   models and don't see any change in how they're represented, you're most
+   likely using an old version of Django. (This version of the tutorial is
+   written for the latest development version of Django.) If you're using a
+   Subversion checkout of of Django's development version (see :ref:`the
+   installation docs <topics-install>` for more information), you shouldn't have
+   any problems.
 
-   If you want to stick with an older version of Django, you'll want to
-   switch to `the Django 0.96 tutorial`_, because this tutorial covers
-   several features that only exist in the Django development version.
+   If you want to stick with an older version of Django, you'll want to switch
+   to `the Django 0.96 tutorial`_, because this tutorial covers several features
+   that only exist in the Django development version.
 
-.. _the installation docs: ../install/
-.. _the Django 0.96 tutorial: ../0.96/tutorial01/
+.. _the Django 0.96 tutorial: http://www.djangoproject.com/documentation/0.96/tutorial01/
 
-It's important to add ``__unicode__()`` methods to your models, not only for
-your own sanity when dealing with the interactive prompt, but also because
-objects' representations are used throughout Django's automatically-generated
-admin.
+It's important to add :meth:`~django.db.models.Model.__unicode__` methods to
+your models, not only for your own sanity when dealing with the interactive
+prompt, but also because objects' representations are used throughout Django's
+automatically-generated admin.
 
-.. admonition:: Why ``__unicode__()`` and not ``__str__()``?
+.. admonition:: Why :meth:`~django.db.models.Model.__unicode__` and not 
+                :meth:`django.db.models.Model.__str__`?
 
     If you're familiar with Python, you might be in the habit of adding
-    ``__str__()`` methods to your classes, not ``__unicode__()`` methods.
-    We use ``__unicode__()`` here because Django models deal with Unicode by
-    default. All data stored in your database is converted to Unicode when it's
-    returned.
+    :meth:`django.db.models.Model.__str__` methods to your classes, not
+    :meth:`~django.db.models.Model.__unicode__` methods. We use
+    :meth:`~django.db.models.Model.__unicode__` here because Django models deal
+    with Unicode by default. All data stored in your database is converted to
+    Unicode when it's returned.
 
-    Django models have a default ``__str__()`` method that calls
-    ``__unicode__()`` and converts the result to a UTF-8 bytestring. This means
-    that ``unicode(p)`` will return a Unicode string, and ``str(p)`` will return
-    a normal string, with characters encoded as UTF-8.
+    Django models have a default :meth:`django.db.models.Model.__str__` method
+    that calls :meth:`~django.db.models.Model.__unicode__` and converts the
+    result to a UTF-8 bytestring. This means that ``unicode(p)`` will return a
+    Unicode string, and ``str(p)`` will return a normal string, with characters
+    encoded as UTF-8.
 
-    If all of this is jibberish to you, just remember to add ``__unicode__()``
-    methods to your models. With any luck, things should Just Work for you.
+    If all of this is jibberish to you, just remember to add
+    :meth:`~django.db.models.Model.__unicode__` methods to your models. With any
+    luck, things should Just Work for you.
 
 Note these are normal Python methods. Let's add a custom method, just for
 demonstration::
@@ -639,10 +683,8 @@ Let's jump back into the Python interactive shell by running
     >>> c = p.choice_set.filter(choice__startswith='Just hacking')
     >>> c.delete()
 
-For full details on the database API, see our `Database API reference`_.
+For full details on the database API, see our :ref:`Database API reference
+<topics-db-queries>`.
 
-When you're comfortable with the API, read `part 2 of this tutorial`_ to get
-Django's automatic admin working.
-
-.. _Database API reference: ../db-api/
-.. _part 2 of this tutorial: ../tutorial02/
+When you're comfortable with the API, read :ref:`part 2 of this tutorial
+<intro-tutorial02>` to get Django's automatic admin working.
diff --git a/docs/tutorial02.txt b/docs/intro/tutorial02.txt
similarity index 72%
rename from docs/tutorial02.txt
rename to docs/intro/tutorial02.txt
index 0b17593165..4af08c48af 100644
--- a/docs/tutorial02.txt
+++ b/docs/intro/tutorial02.txt
@@ -1,26 +1,27 @@
+.. _intro-tutorial02:
+
 =====================================
 Writing your first Django app, part 2
 =====================================
 
-This tutorial begins where `Tutorial 1`_ left off. We're continuing the Web-poll
-application and will focus on Django's automatically-generated admin site.
-
-.. _Tutorial 1: ../tutorial01/
+This tutorial begins where :ref:`Tutorial 1 <intro-tutorial01>` left off. We're
+continuing the Web-poll application and will focus on Django's
+automatically-generated admin site.
 
 .. admonition:: Philosophy
 
     Generating admin sites for your staff or clients to add, change and delete
-    content is tedious work that doesn't require much creativity. For that reason,
-    Django entirely automates creation of admin interfaces for models.
-
+    content is tedious work that doesn't require much creativity. For that
+    reason, Django entirely automates creation of admin interfaces for models.
+    
     Django was written in a newsroom environment, with a very clear separation
     between "content publishers" and the "public" site. Site managers use the
     system to add news stories, events, sports scores, etc., and that content is
-    displayed on the public site. Django solves the problem of creating a unified
-    interface for site administrators to edit content.
-
-    The admin isn't necessarily intended to be used by site visitors; it's for site
-    managers.
+    displayed on the public site. Django solves the problem of creating a
+    unified interface for site administrators to edit content.
+    
+    The admin isn't necessarily intended to be used by site visitors; it's for
+    site managers.
 
 Activate the admin site
 =======================
@@ -28,10 +29,10 @@ Activate the admin site
 The Django admin site is not activated by default -- it's an opt-in thing. To
 activate the admin site for your installation, do these three things:
 
-    * Add ``"django.contrib.admin"`` to your ``INSTALLED_APPS`` setting.
+    * Add ``"django.contrib.admin"`` to your :setting:`INSTALLED_APPS` setting.
     
     * Run ``python manage.py syncdb``. Since you have added a new application
-      to ``INSTALLED_APPS``, the database tables need to be updated.
+      to :setting:`INSTALLED_APPS`, the database tables need to be updated.
       
     * Edit your ``mysite/urls.py`` file and uncomment the lines below the
       "Uncomment this for admin:" comments. This file is a URLconf; we'll dig
@@ -65,14 +66,16 @@ Start the development server
 
 Let's start the development server and explore the admin site.
 
-Recall from Tutorial 1 that you start the development server like so::
+Recall from Tutorial 1 that you start the development server like so:
+
+.. code-block:: bash
 
     python manage.py runserver
 
 Now, open a Web browser and go to "/admin/" on your local domain -- e.g.,
 http://127.0.0.1:8000/admin/. You should see the admin's login screen:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin01.png
+.. image:: _images/admin01.png
    :alt: Django admin login screen
 
 Enter the admin site
@@ -81,24 +84,22 @@ Enter the admin site
 Now, try logging in. (You created a superuser account in the first part of this
 tutorial, remember?) You should see the Django admin index page:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin02t.png
+.. image:: _images/admin02t.png
    :alt: Django admin index page
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin02.png
 
 You should see a few other types of editable content, including groups, users
 and sites. These are core features Django ships with by default.
 
-.. _"I can't log in" questions: ../faq/#the-admin-site
-
 Make the poll app modifiable in the admin
 =========================================
 
 But where's our poll app? It's not displayed on the admin index page.
 
 Just one thing to do: We need to tell the admin that ``Poll``
-objects have an admin interface. Edit the ``mysite/polls/models.py`` file and
+objects have an admin interface. Edit the ``mysite/polls/admin.py`` file and
 add the following to the bottom of the file::
 
+    from mysite.polls.models import Poll
     from django.contrib import admin
     
     admin.site.register(Poll)
@@ -113,52 +114,54 @@ Explore the free admin functionality
 Now that we've registered ``Poll``, Django knows that it should be displayed on
 the admin index page:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin03t.png
+.. image:: _images/admin03t.png
    :alt: Django admin index page, now with polls displayed
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin03.png
 
 Click "Polls." Now you're at the "change list" page for polls. This page
 displays all the polls in the database and lets you choose one to change it.
 There's the "What's up?" poll we created in the first tutorial:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin04t.png
+.. image:: _images/admin04t.png
    :alt: Polls change list page
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin04.png
 
 Click the "What's up?" poll to edit it:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin05t.png
+.. image:: _images/admin05t.png
    :alt: Editing form for poll object
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin05.png
 
 Things to note here:
 
-* The form is automatically generated from the Poll model.
-* The different model field types (``models.DateTimeField``, ``models.CharField``)
-  correspond to the appropriate HTML input widget. Each type of field knows
-  how to display itself in the Django admin.
-* Each ``DateTimeField`` gets free JavaScript shortcuts. Dates get a "Today"
-  shortcut and calendar popup, and times get a "Now" shortcut and a convenient
-  popup that lists commonly entered times.
+    * The form is automatically generated from the Poll model.
+    
+    * The different model field types (:class:`~django.db.models.DateTimeField`,
+      :class:`~django.db.models.CharField`) correspond to the appropriate HTML
+      input widget. Each type of field knows how to display itself in the Django
+      admin.
+    
+    * Each :class:`~django.db.models.DateTimeField` gets free JavaScript
+      shortcuts. Dates get a "Today" shortcut and calendar popup, and times get
+      a "Now" shortcut and a convenient popup that lists commonly entered times.
 
 The bottom part of the page gives you a couple of options:
 
-* Save -- Saves changes and returns to the change-list page for this type of
-  object.
-* Save and continue editing -- Saves changes and reloads the admin page for
-  this object.
-* Save and add another -- Saves changes and loads a new, blank form for this
-  type of object.
-* Delete -- Displays a delete confirmation page.
+    * Save -- Saves changes and returns to the change-list page for this type of
+      object.
+      
+    * Save and continue editing -- Saves changes and reloads the admin page for
+      this object.
+      
+    * Save and add another -- Saves changes and loads a new, blank form for this
+      type of object.
+      
+    * Delete -- Displays a delete confirmation page.
 
 Change the "Date published" by clicking the "Today" and "Now" shortcuts. Then
 click "Save and continue editing." Then click "History" in the upper right.
 You'll see a page listing all changes made to this object via the Django admin,
 with the timestamp and username of the person who made the change:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin06t.png
+.. image:: _images/admin06t.png
    :alt: History page for poll object
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin06.png
 
 Customize the admin form
 ========================
@@ -184,7 +187,7 @@ admin options for an object.
 This particular change above makes the "Publication date" come before the
 "Question" field:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin07.png
+.. image:: _images/admin07.png
    :alt: Fields have been reordered
 
 This isn't impressive with only two fields, but for admin forms with dozens
@@ -204,9 +207,8 @@ up into fieldsets::
 The first element of each tuple in ``fieldsets`` is the title of the fieldset.
 Here's what our form looks like now:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin08t.png
+.. image:: _images/admin08t.png
    :alt: Form has fieldsets now
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin08.png
 
 You can assign arbitrary HTML classes to each fieldset. Django provides a
 ``"collapse"`` class that displays a particular fieldset initially collapsed.
@@ -219,7 +221,7 @@ aren't commonly used::
                 ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
             ]
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin09.png
+.. image:: _images/admin09.png
    :alt: Fieldset is initially collapsed
 
 Adding related objects
@@ -232,18 +234,21 @@ Yet.
 
 There are two ways to solve this problem. The first register ``Choice`` with the
 admin just as we did with ``Poll``. That's easy::
-
+    
+    from mysite.polls.models import Choice
+    
     admin.site.register(Choice)
 
 Now "Choices" is an available option in the Django admin. The "Add choice" form
 looks like this:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin10.png
+.. image:: _images/admin10.png
    :alt: Choice admin page
 
 In that form, the "Poll" field is a select box containing every poll in the
-database. Django knows that a ``ForeignKey`` should be represented in the admin
-as a ``<select>`` box. In our case, only one poll exists at this point.
+database. Django knows that a :class:`~django.db.models.ForeignKey` should be
+represented in the admin as a ``<select>`` box. In our case, only one poll
+exists at this point.
 
 Also note the "Add Another" link next to "Poll." Every object with a
 ``ForeignKey`` relationship to another gets this for free. When you click "Add
@@ -259,6 +264,7 @@ Poll object. Let's make that happen.
 Remove the ``register()`` call for the Choice model. Then, edit the ``Poll``
 registration code to read::
 
+    poll = models.ForeignKey(Poll, edit_inline=models.STACKED, num_in_admin=3)
     class ChoiceInline(admin.StackedInline):
         model = Choice
         extra = 3
@@ -277,16 +283,15 @@ default, provide enough fields for 3 choices."
 
 Load the "Add poll" page to see how that looks:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin11t.png
+.. image:: _images/admin11t.png
    :alt: Add poll page now has choices on it
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin11.png
 
 It works like this: There are three slots for related Choices -- as specified
 by ``extra`` -- and each time you come back to the "Change" page for an
 already-created object, you get another three extra slots.
 
 One small problem, though. It takes a lot of screen space to display all the
-fields for entering related Choice objects. For that reason, Django offers an
+fields for entering related Choice objects. For that reason, Django offers a
 tabular way of displaying inline related objects; you just need to change
 the ``ChoiceInline`` declaration to read::
 
@@ -296,7 +301,7 @@ the ``ChoiceInline`` declaration to read::
 With that ``TabularInline`` (instead of ``StackedInline``), the
 related objects are displayed in a more compact, table-based format:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin12.png
+.. image:: _images/admin12.png
    :alt: Add poll page now has more compact choices
 
 Customize the admin change list
@@ -307,9 +312,8 @@ Now that the Poll admin page is looking good, let's make some tweaks to the
 
 Here's what it looks like at this point:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin04t.png
+.. image:: _images/admin04t.png
    :alt: Polls change list page
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin04.png
 
 By default, Django displays the ``str()`` of each object. But sometimes it'd be
 more helpful if we could display individual fields. To do that, use the
@@ -329,9 +333,8 @@ method from Tutorial 1::
 
 Now the poll change list page looks like this:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin13t.png
+.. image:: _images/admin13t.png
    :alt: Polls change list page, updated
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin13.png
 
 You can click on the column headers to sort by those values -- except in the
 case of the ``was_published_today`` header, because sorting by the output of
@@ -352,9 +355,8 @@ following line to ``PollAdmin``::
 That adds a "Filter" sidebar that lets people filter the change list by the
 ``pub_date`` field:
 
-.. image:: http://media.djangoproject.com/img/doc/tutorial-trunk/admin14t.png
+.. image:: _images/admin14t.png
    :alt: Polls change list page, updated
-   :target: http://media.djangoproject.com/img/doc/tutorial-trunk/admin14.png
 
 The type of filter displayed depends on the type of field you're filtering on.
 Because ``pub_date`` is a DateTimeField, Django knows to give the default
@@ -395,11 +397,12 @@ is powered by Django itself, and its interfaces use Django's own template
 system. (How meta!)
 
 Open your settings file (``mysite/settings.py``, remember) and look at the
-``TEMPLATE_DIRS`` setting. ``TEMPLATE_DIRS`` is a tuple of filesystem
-directories to check when loading Django templates. It's a search path.
+:setting:`TEMPLATE_DIRS` setting. :setting:`TEMPLATE_DIRS` is a tuple of
+filesystem directories to check when loading Django templates. It's a search
+path.
 
-By default, ``TEMPLATE_DIRS`` is empty. So, let's add a line to it, to tell
-Django where our templates live::
+By default, :setting:`TEMPLATE_DIRS` is empty. So, let's add a line to it, to
+tell Django where our templates live::
 
     TEMPLATE_DIRS = (
         "/home/my_username/mytemplates", # Change this to your own directory.
@@ -407,9 +410,10 @@ Django where our templates live::
 
 Now copy the template ``admin/base_site.html`` from within the default Django
 admin template directory (``django/contrib/admin/templates``) into an ``admin``
-subdirectory of whichever directory you're using in ``TEMPLATE_DIRS``. For
-example, if your ``TEMPLATE_DIRS`` includes ``"/home/my_username/mytemplates"``,
-as above, then copy ``django/contrib/admin/templates/admin/base_site.html`` to
+subdirectory of whichever directory you're using in :setting:`TEMPLATE_DIRS`.
+For example, if your :setting:`TEMPLATE_DIRS` includes
+``"/home/my_username/mytemplates"``, as above, then copy
+``django/contrib/admin/templates/admin/base_site.html`` to
 ``/home/my_username/mytemplates/admin/base_site.html``. Don't forget that
 ``admin`` subdirectory.
 
@@ -421,13 +425,11 @@ override a template, just do the same thing you did with ``base_site.html`` --
 copy it from the default directory into your custom directory, and make
 changes.
 
-Astute readers will ask: But if ``TEMPLATE_DIRS`` was empty by default, how was
-Django finding the default admin templates? The answer is that, by default,
-Django automatically looks for a ``templates/`` subdirectory within each app
-package, for use as a fallback. See the `loader types documentation`_ for full
-information.
-
-.. _loader types documentation: ../templates_python/#loader-types
+Astute readers will ask: But if :setting:`TEMPLATE_DIRS` was empty by default,
+how was Django finding the default admin templates? The answer is that, by
+default, Django automatically looks for a ``templates/`` subdirectory within
+each app package, for use as a fallback. See the :ref:`template loader
+documentation <template-loaders>` for full information.
 
 Customize the admin index page
 ==============================
@@ -435,10 +437,10 @@ Customize the admin index page
 On a similar note, you might want to customize the look and feel of the Django
 admin index page.
 
-By default, it displays all the apps in your ``INSTALLED_APPS`` setting that
-have been registered with the admin application, in alphabetical order. You
-may want to make significant changes to the layout. After all, the index is
-probably the most important page of the admin, and it should be easy to use.
+By default, it displays all the apps in :setting:`INSTALLED_APPS` that have been
+registered with the admin application, in alphabetical order. You may want to
+make significant changes to the layout. After all, the index is probably the
+most important page of the admin, and it should be easy to use.
 
 The template to customize is ``admin/index.html``. (Do the same as with
 ``admin/base_site.html`` in the previous section -- copy it from the default
@@ -447,15 +449,9 @@ uses a template variable called ``app_list``. That variable contains every
 installed Django app. Instead of using that, you can hard-code links to
 object-specific admin pages in whatever way you think is best.
 
-Django offers another shortcut in this department. Run the command
-``python manage.py adminindex polls`` to get a chunk of template code for
-inclusion in the admin index template. It's a useful starting point.
+Django offers another shortcut in this department. Run the command ``python
+manage.py adminindex polls`` to get a chunk of template code for inclusion in
+the admin index template. It's a useful starting point.
 
-For full details on customizing the look and feel of the Django admin site in
-general, see the `Django admin CSS guide`_.
-
-When you're comfortable with the admin site, read `part 3 of this tutorial`_ to
-start working on public poll views.
-
-.. _Django admin CSS guide: ../admin_css/
-.. _part 3 of this tutorial: ../tutorial03/
+When you're comfortable with the admin site, read :ref:`part 3 of this tutorial
+<intro-tutorial03>` to start working on public poll views.
diff --git a/docs/tutorial03.txt b/docs/intro/tutorial03.txt
similarity index 65%
rename from docs/tutorial03.txt
rename to docs/intro/tutorial03.txt
index 2ac106229f..6d40a5bfcb 100644
--- a/docs/tutorial03.txt
+++ b/docs/intro/tutorial03.txt
@@ -1,11 +1,12 @@
+.. _intro-tutorial03:
+
 =====================================
 Writing your first Django app, part 3
 =====================================
 
-This tutorial begins where `Tutorial 2`_ left off. We're continuing the Web-poll
-application and will focus on creating the public interface -- "views."
-
-.. _Tutorial 2: ../tutorial02/
+This tutorial begins where :ref:`Tutorial 2 <intro-tutorial02>` left off. We're
+continuing the Web-poll application and will focus on creating the public
+interface -- "views."
 
 Philosophy
 ==========
@@ -15,20 +16,28 @@ a specific function and has a specific template. For example, in a weblog
 application, you might have the following views:
 
     * Blog homepage -- displays the latest few entries.
+    
     * Entry "detail" page -- permalink page for a single entry.
+    
     * Year-based archive page -- displays all months with entries in the
       given year.
+      
     * Month-based archive page -- displays all days with entries in the
       given month.
+      
     * Day-based archive page -- displays all entries in the given day.
+    
     * Comment action -- handles posting comments to a given entry.
 
 In our poll application, we'll have the following four views:
 
     * Poll "archive" page -- displays the latest few polls.
+    
     * Poll "detail" page -- displays a poll question, with no results but
       with a form to vote.
+    
     * Poll "results" page -- displays results for a particular poll.
+    
     * Vote action -- handles voting for a particular choice in a particular
       poll.
 
@@ -42,8 +51,8 @@ creating a Python module, called a URLconf. URLconfs are how Django associates
 a given URL with given Python code.
 
 When a user requests a Django-powered page, the system looks at the
-``ROOT_URLCONF`` setting, which contains a string in Python dotted syntax.
-Django loads that module and looks for a module-level variable called
+:setting:`ROOT_URLCONF` setting, which contains a string in Python dotted
+syntax. Django loads that module and looks for a module-level variable called
 ``urlpatterns``, which is a sequence of tuples in the following format::
 
     (regular expression, Python callback function [, optional dictionary])
@@ -53,17 +62,19 @@ comparing the requested URL against each regular expression until it finds one
 that matches.
 
 When it finds a match, Django calls the Python callback function, with an
-``HTTPRequest`` object as the first argument, any "captured" values from the
-regular expression as keyword arguments, and, optionally, arbitrary keyword
-arguments from the dictionary (an optional third item in the tuple).
+:class:`~django.http.HttpRequest` object as the first argument, any "captured"
+values from the regular expression as keyword arguments, and, optionally,
+arbitrary keyword arguments from the dictionary (an optional third item in the
+tuple).
 
-For more on ``HTTPRequest`` objects, see the `request and response documentation`_.
-For more details on URLconfs, see the `URLconf documentation`_.
+For more on :class:`~django.http.HttpRequest` objects, see the
+:ref:`ref-request-response`. For more details on URLconfs, see the
+:ref:`topics-http-urls`.
 
 When you ran ``python django-admin.py startproject mysite`` at the beginning of
 Tutorial 1, it created a default URLconf in ``mysite/urls.py``. It also
-automatically set your ``ROOT_URLCONF`` setting (in ``settings.py``) to point
-at that file::
+automatically set your :setting:`ROOT_URLCONF` setting (in ``settings.py``) to
+point at that file::
 
     ROOT_URLCONF = 'mysite.urls'
 
@@ -78,27 +89,27 @@ Time for an example. Edit ``mysite/urls.py`` so it looks like this::
         (r'^polls/(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
     )
 
-This is worth a review. When somebody requests a page from your Web site --
-say, "/polls/23/", Django will load this Python module, because it's pointed to
-by the ``ROOT_URLCONF`` setting. It finds the variable named ``urlpatterns``
+This is worth a review. When somebody requests a page from your Web site -- say,
+"/polls/23/", Django will load this Python module, because it's pointed to by
+the :setting:`ROOT_URLCONF` setting. It finds the variable named ``urlpatterns``
 and traverses the regular expressions in order. When it finds a regular
 expression that matches -- ``r'^polls/(?P<poll_id>\d+)/$'`` -- it loads the
 associated Python package/module: ``mysite.polls.views.detail``. That
-corresponds to the function ``detail()`` in ``mysite/polls/views.py``.
-Finally, it calls that ``detail()`` function like so::
+corresponds to the function ``detail()`` in ``mysite/polls/views.py``. Finally,
+it calls that ``detail()`` function like so::
 
     detail(request=<HttpRequest object>, poll_id='23')
 
-The ``poll_id='23'`` part comes from ``(?P<poll_id>\d+)``. Using parenthesis around a
-pattern "captures" the text matched by that pattern and sends it as an argument
-to the view function; the ``?P<poll_id>`` defines the name that will be used to
-identify the matched pattern; and ``\d+`` is a regular expression to match a sequence of
-digits (i.e., a number).
+The ``poll_id='23'`` part comes from ``(?P<poll_id>\d+)``. Using parenthesis
+around a pattern "captures" the text matched by that pattern and sends it as an
+argument to the view function; the ``?P<poll_id>`` defines the name that will be
+used to identify the matched pattern; and ``\d+`` is a regular expression to
+match a sequence of digits (i.e., a number).
 
 Because the URL patterns are regular expressions, there really is no limit on
-what you can do with them. And there's no need to add URL cruft such as
-``.php`` -- unless you have a sick sense of humor, in which case you can do
-something like this::
+what you can do with them. And there's no need to add URL cruft such as ``.php``
+-- unless you have a sick sense of humor, in which case you can do something
+like this::
 
     (r'^polls/latest\.php$', 'mysite.polls.views.index'),
 
@@ -110,16 +121,14 @@ the URLconf will look for ``/myapp/``. In a request to
 ``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.
+`Python documentation`_. 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://www.python.org/doc/current/lib/module-re.html
-.. _request and response documentation: ../request_response/
-.. _URLconf documentation: ../url_dispatch/
 
 Write your first view
 =====================
@@ -127,7 +136,9 @@ Write your first view
 Well, we haven't created any views yet -- we just have the URLconf. But let's
 make sure Django is following the URLconf properly.
 
-Fire up the Django development Web server::
+Fire up the Django development Web server:
+
+.. code-block:: bash
 
     python manage.py runserver
 
@@ -170,21 +181,22 @@ provide in the URL.
 Write views that actually do something
 ======================================
 
-Each view is responsible for doing one of two things: Returning an ``HttpResponse``
-object containing the content for the requested page, or raising an exception
-such as ``Http404``. The rest is up to you.
+Each view is responsible for doing one of two things: Returning an
+:class:`~django.http.HttpResponse` object containing the content for the
+requested page, or raising an exception such as :exc:`~django.http.Http404`. The
+rest is up to you.
 
 Your view can read records from a database, or not. It can use a template
 system such as Django's -- or a third-party Python template system -- or not.
 It can generate a PDF file, output XML, create a ZIP file on the fly, anything
 you want, using whatever Python libraries you want.
 
-All Django wants is that ``HttpResponse``. Or an exception.
+All Django wants is that :class:`~django.http.HttpResponse`. Or an exception.
 
 Because it's convenient, let's use Django's own database API, which we covered
-in Tutorial 1. Here's one stab at the ``index()`` view, which displays the
-latest 5 poll questions in the system, separated by commas, according to
-publication date::
+in :ref:`Tutorial 1 <intro-tutorial01>`. Here's one stab at the ``index()``
+view, which displays the latest 5 poll questions in the system, separated by
+commas, according to publication date::
 
     from mysite.polls.models import Poll
     from django.http import HttpResponse
@@ -210,8 +222,8 @@ So let's use Django's template system to separate the design from Python::
         })
         return HttpResponse(t.render(c))
 
-That code loads the template called "polls/index.html" and passes it a context. The
-context is a dictionary mapping template variable names to Python objects.
+That code loads the template called "polls/index.html" and passes it a context.
+The context is a dictionary mapping template variable names to Python objects.
 
 Reload the page. Now you'll see an error::
 
@@ -219,20 +231,21 @@ Reload the page. Now you'll see an error::
     polls/index.html
 
 Ah. There's no template yet. First, create a directory, somewhere on your
-filesystem, whose contents Django can access. (Django runs as whatever user
-your server runs.) Don't put them under your document root, though. You
-probably shouldn't make them public, just for security's sake.
-
-Then edit ``TEMPLATE_DIRS`` in your ``settings.py`` to tell Django where it can
-find templates -- just as you did in the "Customize the admin look and feel"
-section of Tutorial 2.
+filesystem, whose contents Django can access. (Django runs as whatever user your
+server runs.) Don't put them under your document root, though. You probably
+shouldn't make them public, just for security's sake.
+Then edit :setting:`TEMPLATE_DIRS` in your ``settings.py`` to tell Django where
+it can find templates -- just as you did in the "Customize the admin look and
+feel" section of Tutorial 2.
 
 When you've done that, create a directory ``polls`` in your template directory.
 Within that, create a file called ``index.html``. Note that our
 ``loader.get_template('polls/index.html')`` code from above maps to
 "[template_directory]/polls/index.html" on the filesystem.
 
-Put the following code in that template::
+Put the following code in that template:
+
+.. code-block:: html+django
 
     {% if latest_poll_list %}
         <ul>
@@ -251,8 +264,9 @@ A shortcut: render_to_response()
 --------------------------------
 
 It's a very common idiom to load a template, fill a context and return an
-``HttpResponse`` object with the result of the rendered template. Django
-provides a shortcut. Here's the full ``index()`` view, rewritten::
+:class:`~django.http.HttpResponse` object with the result of the rendered
+template. Django provides a shortcut. Here's the full ``index()`` view,
+rewritten::
 
     from django.shortcuts import render_to_response
     from mysite.polls.models import Poll
@@ -261,11 +275,14 @@ provides a shortcut. Here's the full ``index()`` view, rewritten::
         latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
         return render_to_response('polls/index.html', {'latest_poll_list': latest_poll_list})
 
-Note that once we've done this in all these views, we no longer need to import ``loader``, ``Context`` and ``HttpResponse``.
+Note that once we've done this in all these views, we no longer need to import
+:mod:`~django.template.loader`, :class:`~django.template.Context` and
+:class:`~django.http.HttpResponse`.
 
-The ``render_to_response()`` function takes a template name as its first
-argument and a dictionary as its optional second argument. It returns an
-``HttpResponse`` object of the given template rendered with the given context.
+The :func:`~django.shortcuts.render_to_response` function takes a template name
+as its first argument and a dictionary as its optional second argument. It
+returns an :class:`~django.http.HttpResponse` object of the given template
+rendered with the given context.
 
 Raising 404
 ===========
@@ -282,15 +299,15 @@ for a given poll. Here's the view::
             raise Http404
         return render_to_response('polls/detail.html', {'poll': p})
 
-The new concept here: The view raises the ``django.http.Http404``
-exception if a poll with the requested ID doesn't exist.
+The new concept here: The view raises the :exc:`~django.http.Http404` exception
+if a poll with the requested ID doesn't exist.
 
 A shortcut: get_object_or_404()
 -------------------------------
 
-It's a very common idiom to use ``get()`` and raise ``Http404`` if the
-object doesn't exist. Django provides a shortcut. Here's the ``detail()`` view,
-rewritten::
+It's a very common idiom to use :meth:`~django.db.models.QuerySet.get` and raise
+:exc:`~django.http.Http404` if the object doesn't exist. Django provides a
+shortcut. Here's the ``detail()`` view, rewritten::
 
     from django.shortcuts import render_to_response, get_object_or_404
     # ...
@@ -298,32 +315,36 @@ rewritten::
         p = get_object_or_404(Poll, pk=poll_id)
         return render_to_response('polls/detail.html', {'poll': p})
 
-The ``get_object_or_404()`` function takes a Django model module as its first
-argument and an arbitrary number of keyword arguments, which it passes to the
-module's ``get()`` function. It raises ``Http404`` if the object doesn't
-exist.
+The :func:`~django.shortcuts.get_object_or_404` function takes a Django model
+module as its first argument and an arbitrary number of keyword arguments, which
+it passes to the module's :meth:`~django.db.models.QuerySet.get` function. It
+raises :exc:`~django.http.Http404` if the object doesn't exist.
 
 .. admonition:: Philosophy
 
-    Why do we use a helper function ``get_object_or_404()`` instead of
-    automatically catching the ``DoesNotExist`` exceptions at a higher level,
-    or having the model API raise ``Http404`` instead of ``DoesNotExist``?
+    Why do we use a helper function :func:`~django.shortcuts.get_object_or_404`
+    instead of automatically catching the
+    :exc:`~django.core.exceptions.ObjectDoesNotExist` exceptions at a higher
+    level, or having the model API raise :exc:`~django.http.Http404` instead of
+    :exc:`~django.core.exceptions.ObjectDoesNotExist`?
 
     Because that would couple the model layer to the view layer. One of the
     foremost design goals of Django is to maintain loose coupling.
 
-There's also a ``get_list_or_404()`` function, which works just as
-``get_object_or_404()`` -- except using ``filter()`` instead of
-``get()``. It raises ``Http404`` if the list is empty.
+There's also a :func:`~django.shortcuts.get_list_or_404` function, which works
+just as :func:`~django.shortcuts.get_object_or_404` -- except using
+:meth:`~django.db.models.QuerySet.filter` instead of
+:meth:`~django.db.models.QuerySet.get`. It raises :exc:`~django.http.Http404` if
+the list is empty.
 
 Write a 404 (page not found) view
 =================================
 
-When you raise ``Http404`` from within a view, Django will load a special view
-devoted to handling 404 errors. It finds it by looking for the variable
-``handler404``, which is a string in Python dotted syntax -- the same format
-the normal URLconf callbacks use. A 404 view itself has nothing special: It's
-just a normal view.
+When you raise :exc:`~django.http.Http404` from within a view, Django will load
+a special view devoted to handling 404 errors. It finds it by looking for the
+variable ``handler404``, which is a string in Python dotted syntax -- the same
+format the normal URLconf callbacks use. A 404 view itself has nothing 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::
@@ -332,18 +353,20 @@ have the following line up top::
 
 That takes care of setting ``handler404`` in the current module. As you can see
 in ``django/conf/urls/defaults.py``, ``handler404`` is set to
-``'django.views.defaults.page_not_found'`` by default.
+:func:`django.views.defaults.page_not_found` by default.
 
 Three more things to note about 404 views:
 
     * The 404 view is also called if Django doesn't find a match after checking
       every regular expression in the URLconf.
-    * If you don't define your own 404 view -- and simply use the default,
-      which is recommended -- you still have one obligation: To create a
-      ``404.html`` template in the root of your template directory. The default
-      404 view will use that template for all 404 errors.
-    * If ``DEBUG`` is set to ``True`` (in your settings module) then your 404
-      view will never be used, and the traceback will be displayed instead.
+      
+    * If you don't define your own 404 view -- and simply use the default, which
+      is recommended -- you still have one obligation: To create a ``404.html``
+      template in the root of your template directory. The default 404 view will
+      use that template for all 404 errors.
+      
+    * If :setting:`DEBUG` is set to ``True`` (in your settings module) then your
+      404 view will never be used, and the traceback will be displayed instead.
 
 Write a 500 (server error) view
 ===============================
@@ -355,9 +378,11 @@ view code.
 Use the template system
 =======================
 
-Back to the ``detail()`` view for our poll application. Given the context 
+Back to the ``detail()`` view for our poll application. Given the context
 variable ``poll``, here's what the "polls/detail.html" template might look
-like::
+like:
+
+.. code-block:: html+django
 
     <h1>{{ poll.question }}</h1>
     <ul>
@@ -376,9 +401,7 @@ Method-calling happens in the ``{% for %}`` loop: ``poll.choice_set.all`` is
 interpreted as the Python code ``poll.choice_set.all()``, which returns an
 iterable of Choice objects and is suitable for use in the ``{% for %}`` tag.
 
-See the `template guide`_ for full details on how templates work.
-
-.. _template guide: ../templates/
+See the :ref:`template guide <topics-templates>` for more about templates.
 
 Simplifying the URLconfs
 ========================
@@ -397,7 +420,7 @@ Namely, ``mysite.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 ``patterns()``, like so::
+first argument to :func:`~django.conf.urls.defaults.patterns`, like so::
 
     urlpatterns = patterns('mysite.polls.views',
         (r'^polls/$', 'index'),
@@ -414,7 +437,7 @@ Decoupling the URLconfs
 
 While we're at it, we should take the time to decouple our poll-app URLs from
 our Django project configuration. Django apps are meant to be pluggable -- that
-is, each particular app should be transferrable to another Django installation
+is, each particular app should be transferable to another Django installation
 with minimal fuss.
 
 Our poll app is pretty decoupled at this point, thanks to the strict directory
@@ -425,28 +448,29 @@ We've been editing the URLs in ``mysite/urls.py``, but the URL design of an
 app is specific to the app, not to the Django installation -- so let's move the
 URLs within the app directory.
 
-Copy the file ``mysite/urls.py`` to ``mysite/polls/urls.py``. Then,
-change ``mysite/urls.py`` to remove the poll-specific URLs and insert an
-``include()``::
+Copy the file ``mysite/urls.py`` to ``mysite/polls/urls.py``. Then, change
+``mysite/urls.py`` to remove the poll-specific URLs and insert an
+:func:`~django.conf.urls.defaults.include`::
 
     (r'^polls/', include('mysite.polls.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 ``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.
+:func:`~django.conf.urls.defaults.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
+URL matched up to that point and sends the remaining string to the included
+URLconf for further processing.
 
 Here's what happens if a user goes to "/polls/34/" in this system:
 
-* Django will find the match at ``'^polls/'``
-* It will strip off the matching text (``"polls/"``) and send the remaining
-  text -- ``"34/"`` -- to the 'mysite.polls.urls' URLconf for
-  further processing.
+    * Django will find the match at ``'^polls/'``
 
-Now that we've decoupled that, we need to decouple the
-'mysite.polls.urls' URLconf by removing the leading "polls/" from each
-line::
+    * Then, Django will strip off the matching text (``"polls/"``) and send the
+      remaining text -- ``"34/"`` -- to the 'mysite.polls.urls' URLconf for
+      further processing.
+
+Now that we've decoupled that, we need to decouple the 'mysite.polls.urls'
+URLconf by removing the leading "polls/" from each line::
 
     urlpatterns = patterns('mysite.polls.views',
         (r'^$', 'index'),
@@ -455,14 +479,12 @@ line::
         (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
     )
 
-The idea behind ``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 URL root, and the app will still work.
+The idea behind :func:`~django.conf.urls.defaults.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 URL root, and the app will still work.
 
 All the poll app cares about is its relative URLs, not its absolute URLs.
 
-When you're comfortable with writing views, read `part 4 of this tutorial`_ to
-learn about simple form processing and generic views.
-
-.. _part 4 of this tutorial: ../tutorial04/
+When you're comfortable with writing views, read :ref:`part 4 of this tutorial
+<intro-tutorial04>` to learn about simple form processing and generic views.
diff --git a/docs/tutorial04.txt b/docs/intro/tutorial04.txt
similarity index 52%
rename from docs/tutorial04.txt
rename to docs/intro/tutorial04.txt
index 78f954d632..fb0b206326 100644
--- a/docs/tutorial04.txt
+++ b/docs/intro/tutorial04.txt
@@ -1,15 +1,20 @@
+.. _intro-tutorial04:
+
 =====================================
 Writing your first Django app, part 4
 =====================================
 
-This tutorial begins where `Tutorial 3`_ left off. We're continuing the Web-poll
-application and will focus on simple form processing and cutting down our code.
+This tutorial begins where :ref:`Tutorial 3 <intro-tutorial03>` left off. We're
+continuing the Web-poll application and will focus on simple form processing and
+cutting down our code.
 
 Write a simple form
 ===================
 
 Let's update our poll detail template ("polls/detail.html") from the last
-tutorial, so that the template contains an HTML ``<form>`` element::
+tutorial, so that the template contains an HTML ``<form>`` element:
+
+.. code-block:: html+django
 
     <h1>{{ poll.question }}</h1>
 
@@ -38,15 +43,12 @@ A quick rundown:
       data server-side, use ``method="post"``. This tip isn't specific to
       Django; it's just good Web development practice.
 
-    * ``forloop.counter`` indicates how many times the ``for`` tag has
-      gone through its loop. For more information, see `the
-      documentation for the "for" tag`_.
-
-.. _the documentation for the "for" tag: ../templates/#for
+    * ``forloop.counter`` indicates how many times the ;ttag:`for` tag has gone
+      through its loop
 
 Now, let's create a Django view that handles the submitted data and does
-something with it. Remember, in `Tutorial 3`_, we created a URLconf for the
-polls application that includes this line::
+something with it. Remember, in :ref:`Tutorial 3 <intro-tutorial03>`, we created
+a URLconf for the polls application that includes this line::
 
     (r'^(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
 
@@ -77,47 +79,52 @@ So let's create a ``vote()`` function in ``mysite/polls/views.py``::
 
 This code includes a few things we haven't covered yet in this tutorial:
 
-    * ``request.POST`` is a dictionary-like object that lets you access
-      submitted data by key name. In this case, ``request.POST['choice']``
-      returns the ID of the selected choice, as a string. ``request.POST``
-      values are always strings.
+    * :attr:`request.POST <django.http.HttpRequest.POST>` is a dictionary-like
+      object that lets you access submitted data by key name. In this case,
+      ``request.POST['choice']`` returns the ID of the selected choice, as a
+      string. :attr:`request.POST <django.http.HttpRequest.POST>` values are
+      always strings.
 
-      Note that Django also provides ``request.GET`` for accessing GET data
-      in the same way -- but we're explicitly using ``request.POST`` in our
-      code, to ensure that data is only altered via a POST call.
+      Note that Django also provides :attr:`request.GET
+      <django.http.HttpRequest.GET>` for accessing GET data in the same way --
+      but we're explicitly using :attr:`request.POST
+      <django.http.HttpRequest.POST>` in our code, to ensure that data is only
+      altered via a POST call.
 
-    * ``request.POST['choice']`` will raise ``KeyError`` if ``choice`` wasn't
-      provided in POST data. The above code checks for ``KeyError`` and
+    * ``request.POST['choice']`` will raise :exc:`KeyError` if ``choice`` wasn't
+      provided in POST data. The above code checks for :exc:`KeyError` and
       redisplays the poll form with an error message if ``choice`` isn't given.
 
     * After incrementing the choice count, the code returns an
-      ``HttpResponseRedirect`` rather than a normal ``HttpResponse``.
-      ``HttpResponseRedirect`` takes a single argument: the URL to which the
-      user will be redirected (see the following point for how we construct
-      the URL in this case).
+      :class:`~django.http.HttpResponseRedirect` rather than a normal
+      :class:`~django.http.HttpResponse`.
+      :class:`~django.http.HttpResponseRedirect` takes a single argument: the
+      URL to which the user will be redirected (see the following point for how
+      we construct the URL in this case).
 
       As the Python comment above points out, you should always return an
-      ``HttpResponseRedirect`` after successfully dealing with POST data. This
-      tip isn't specific to Django; it's just good Web development practice.
+      :class:`~django.http.HttpResponseRedirect` after successfully dealing with
+      POST data. This tip isn't specific to Django; it's just good Web
+      development practice.
 
-    * We are using the ``reverse()`` function in the ``HttpResponseRedirect``
-      constructor in this example. This function helps avoid having to
-      hardcode a URL in the view function. It is given the name of the view
-      that we want to pass control to and the variable portion of the URL
-      pattern that points to that view. In this case, using the URLConf we set
-      up in Tutorial 3, this ``reverse()`` call will return a string like ::
+    * We are using the :func:`~django.core.urlresolvers.reverse` function in the
+      :class:`~django.http.HttpResponseRedirect` constructor in this example.
+      This function helps avoid having to hardcode a URL in the view function.
+      It is given the name of the view that we want to pass control to and the
+      variable portion of the URL pattern that points to that view. In this
+      case, using the URLConf we set up in Tutorial 3, this
+      :func:`~django.core.urlresolvers.reverse` call will return a string like
+      ::
 
         '/polls/3/results/'
 
       ... where the ``3`` is the value of ``p.id``. This redirected URL will
-      then call the ``'results'`` view to display the final page. Note that
-      you need to use the full name of the view here (including the prefix).
+      then call the ``'results'`` view to display the final page. Note that you
+      need to use the full name of the view here (including the prefix).
 
-      For more information about ``reverse()``, see the `URL dispatcher`_
-      documentation.
-
-As mentioned in Tutorial 3, ``request`` is a ``HTTPRequest`` object. For more
-on ``HTTPRequest`` objects, see the `request and response documentation`_.
+As mentioned in Tutorial 3, ``request`` is a :class:`~django.http.HttpRequest`
+object. For more on :class:`~django.http.HttpRequest` objects, see the
+:ref:`request and response documentation <ref-request-response>`.
 
 After somebody votes in a poll, the ``vote()`` view redirects to the results
 page for the poll. Let's write that view::
@@ -126,10 +133,13 @@ page for the poll. Let's write that view::
         p = get_object_or_404(Poll, pk=poll_id)
         return render_to_response('polls/results.html', {'poll': p})
 
-This is almost exactly the same as the ``detail()`` view from `Tutorial 3`_.
-The only difference is the template name. We'll fix this redundancy later.
+This is almost exactly the same as the ``detail()`` view from :ref:`Tutorial 3
+<intro-tutorial03>`. The only difference is the template name. We'll fix this
+redundancy later.
 
-Now, create a ``results.html`` template::
+Now, create a ``results.html`` template:
+
+.. code-block:: html+django
 
     <h1>{{ poll.question }}</h1>
 
@@ -143,15 +153,12 @@ Now, go to ``/polls/1/`` in your browser and vote in the poll. You should see a
 results page that gets updated each time you vote. If you submit the form
 without having chosen a choice, you should see the error message.
 
-.. _request and response documentation: ../request_response/
-.. _URL dispatcher: ../url_dispatch#reverse
-
 Use generic views: Less code is better
 ======================================
 
-The ``detail()`` (from `Tutorial 3`_) and ``results()`` views are stupidly
-simple -- and, as mentioned above, redundant. The ``index()`` view (also from
-Tutorial 3), which displays a list of polls, is similar.
+The ``detail()`` (from :ref:`Tutorial 3 <intro-tutorial03>`) and ``results()``
+views are stupidly simple -- and, as mentioned above, redundant. The ``index()``
+view (also from Tutorial 3), which displays a list of polls, is similar.
 
 These views represent a common case of basic Web development: getting data from
 the database according to a parameter passed in the URL, loading a template and
@@ -175,7 +182,7 @@ conversion.
 
     You should know basic math before you start using a calculator.
 
-First, open the polls/urls.py URLconf. It looks like this, according to the
+First, open the ``polls/urls.py`` URLconf. It looks like this, according to the
 tutorial so far::
 
     from django.conf.urls.defaults import *
@@ -203,92 +210,95 @@ Change it like so::
         (r'^(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
     )
 
-We're using two generic views here: ``object_list`` and ``object_detail``.
-Respectively, those two views abstract the concepts of "display a list of
-objects" and "display a detail page for a particular type of object."
+We're using two generic views here:
+:func:`~django.views.generic.list_detail.object_list` and
+:func:`~django.views.generic.list_detail.object_detail`. Respectively, those two
+views abstract the concepts of "display a list of objects" and "display a detail
+page for a particular type of object."
 
     * Each generic view needs to know what data it will be acting upon. This
       data is provided in a dictionary. The ``queryset`` key in this dictionary
       points to the list of objects to be manipulated by the generic view.
 
-    * The ``object_detail`` generic view expects the ID value captured
-      from the URL to be called ``"object_id"``, so we've changed ``poll_id`` to
-      ``object_id`` for the generic views.
+    * The :func:`~django.views.generic.list_detail.object_detail` generic view
+      expects the ID value captured from the URL to be called ``"object_id"``,
+      so we've changed ``poll_id`` to ``object_id`` for the generic views.
 
-    * We've added a name, ``poll_results``, to the results view so that we
-      have a way to refer to its URL later on (see the documentation about
-      `naming URL patterns`_ for information). We're also using the `url()`_
-      function from ``django.conf.urls.defaults`` here. It's a good habit to
-      use ``url()`` when you are providing a pattern name like this.
+    * We've added a name, ``poll_results``, to the results view so 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 pattern
+      name like this.
 
-.. _naming URL patterns: ../url_dispatch/#naming-url-patterns
-.. _url(): ../url_dispatch/#url
+By default, the :func:`~django.views.generic.list_detail.object_detail` generic
+view uses a template called ``<app name>/<model name>_detail.html``. In our
+case, it'll use the template ``"polls/poll_detail.html"``. Thus, rename your
+``polls/detail.html`` template to ``polls/poll_detail.html``, and change the
+:func:`~django.shortcuts.render_to_response` line in ``vote()``.
 
-By default, the ``object_detail`` generic view uses a template called
-``<app name>/<model name>_detail.html``. In our case, it'll use the template
-``"polls/poll_detail.html"``. Thus, rename your ``polls/detail.html`` template to
-``polls/poll_detail.html``, and change the ``render_to_response()`` line in
-``vote()``.
+Similarly, the :func:`~django.views.generic.list_detail.object_list` generic
+view uses a template called ``<app name>/<model name>_list.html``. Thus, rename
+``polls/index.html`` to ``polls/poll_list.html``.
 
-Similarly, the ``object_list`` generic view uses a template called
-``<app name>/<model name>_list.html``. Thus, rename ``polls/index.html`` to
-``polls/poll_list.html``.
-
-Because we have more than one entry in the URLconf that uses ``object_detail``
-for the polls app, we manually specify a template name for the results view:
+Because we have more than one entry in the URLconf that uses
+:func:`~django.views.generic.list_detail.object_detail` for the polls app, we
+manually specify a template name for the results view:
 ``template_name='polls/results.html'``. Otherwise, both views would use the same
 template. Note that we use ``dict()`` to return an altered dictionary in place.
 
-.. note:: ``all()`` is lazy
+.. note:: :meth:`django.db.models.QuerySet.all` is lazy
 
     It might look a little frightening to see ``Poll.objects.all()`` being used
     in a detail view which only needs one ``Poll`` object, but don't worry;
-    ``Poll.objects.all()`` is actually a special object called a ``QuerySet``,
-    which is "lazy" and doesn't hit your database until it absolutely has to. By
-    the time the database query happens, the ``object_detail`` generic view will
-    have narrowed its scope down to a single object, so the eventual query will
-    only select one row from the database.
+    ``Poll.objects.all()`` is actually a special object called a
+    :class:`~django.db.models.QuerySet`, which is "lazy" and doesn't hit your
+    database until it absolutely has to. By the time the database query happens,
+    the :func:`~django.views.generic.list_detail.object_detail` generic view
+    will have narrowed its scope down to a single object, so the eventual query
+    will only select one row from the database.
 
     If you'd like to know more about how that works, The Django database API
-    documentation `explains the lazy nature of QuerySet objects`_.
+    documentation :ref:`explains the lazy nature of QuerySet objects
+    <querysets-are-lazy>`.
 
-.. _explains the lazy nature of QuerySet objects: ../db-api/#querysets-are-lazy
-
-In previous parts of the tutorial, the templates have been provided with a context
-that contains the ``poll`` and ``latest_poll_list`` context variables. However,
-the generic views provide the variables ``object`` and ``object_list`` as context.
-Therefore, you need to change your templates to match the new context variables.
-Go through your templates, and modify any reference to ``latest_poll_list`` to
-``object_list``, and change any reference to ``poll`` to ``object``.
+In previous parts of the tutorial, the templates have been provided with a
+context that contains the ``poll`` and ``latest_poll_list`` context variables.
+However, the generic views provide the variables ``object`` and ``object_list``
+as context. Therefore, you need to change your templates to match the new
+context variables. Go through your templates, and modify any reference to
+``latest_poll_list`` to :func:`~django.views.generic.list_detail.object_list`,
+and change any reference to ``poll`` to ``object``.
 
 You can now delete the ``index()``, ``detail()`` and ``results()`` views
 from ``polls/views.py``. We don't need them anymore -- they have been replaced
 by generic views.
 
-The ``vote()`` view is still required. However, it must be modified to match
-the new context variables. In the ``render_to_response()`` call, rename the
-``poll`` context variable to ``object``.
+The ``vote()`` view is still required. However, it must be modified to match the
+new context variables. In the :func:`~django.shortcuts.render_to_response` call,
+rename the ``poll`` context variable to ``object``.
 
 The last thing to do is fix the URL handling to account for the use of generic
-views. In the vote view above, we used the ``reverse()`` function to avoid
-hard-coding our URLs. Now that we've switched to a generic view, we'll need to
-change the ``reverse()`` call to point back to our new generic view. We can't
-simply use the view function anymore -- generic views can be (and are) used
-multiple times -- but we can use the name we've given::
+views. In the vote view above, we used the
+:func:`~django.core.urlresolvers.reverse` function to avoid hard-coding our
+URLs. Now that we've switched to a generic view, we'll need to change the
+:func:`~django.core.urlresolvers.reverse` call to point back to our new generic
+view. We can't simply use the view function anymore -- generic views can be (and
+are) used multiple times -- but we can use the name we've given::
 
     return HttpResponseRedirect(reverse('poll_results', args=(p.id,)))
 
 Run the server, and use your new polling app based on generic views.
 
-For full details on generic views, see the `generic views documentation`_.
-
-.. _generic views documentation: ../generic_views/
+For full details on generic views, see the :ref:`generic views documentation
+<topics-http-generic-views>`.
 
 Coming soon
 ===========
 
-The tutorial ends here for the time being. But check back soon for the next
-installments:
+The tutorial ends here for the time being. Future installments of the tutorial
+will cover:
 
     * Advanced form processing
     * Using the RSS framework
@@ -297,8 +307,5 @@ installments:
     * Advanced admin features: Permissions
     * Advanced admin features: Custom JavaScript
 
-In the meantime, you can read through the rest of the `Django documentation`_
-and start writing your own applications.
-
-.. _Tutorial 3: ../tutorial03/
-.. _Django documentation: http://www.djangoproject.com/documentation/
+In the meantime, you might want to check out some pointers on :ref:`where to go
+from here <intro-whatsnext>`
diff --git a/docs/intro/whatsnext.txt b/docs/intro/whatsnext.txt
new file mode 100644
index 0000000000..ae67220f58
--- /dev/null
+++ b/docs/intro/whatsnext.txt
@@ -0,0 +1,235 @@
+.. _intro-whatsnext:
+
+=================
+What to read next
+=================
+
+So you've read all the :ref:`introductory material <intro-index>` and have
+decided you'd like to keep using Django. We've only just scratched the surface
+with this intro (in fact, if you've read every single word you've still read
+less than 10% of the overall documentation).
+
+So what's next?
+
+Well, we've always been big fans of learning by doing. At this point you should
+know enough to start a project of your own and start fooling around. As you need
+to learn new tricks, come back to the documentation.
+
+We've put a lot of effort into making Django's documentation useful, easy to
+read and as complete as possible. The rest of this document explains more about
+how the documentation works so that you can get the most out of it.
+
+(Yes, this is documentation about documentation. Rest assured we have no plans
+to write a document about how to read the document about documentation.)
+
+Finding documentation
+=====================
+
+Django's got a *lot* of documentation -- almost 200,000 words -- so finding what
+you need can sometimes be tricky. A few good places to start the :ref:`search`
+and the :ref:`genindex`.
+
+Or you can just browse around!
+
+How the documentation is organized
+==================================
+
+Django's main documentation is broken up into "chunks" designed to fill
+different needs:
+
+    * The :ref:`introductory material <intro-index>` is designed for people new
+      to Django -- or to web development in general. It doesn't cover anything
+      in depth, but instead gives a high-level overview of how developing in
+      Django "feels".
+      
+    * The :ref:`topic guides <topics-index>`, on the other hand, dive deep into
+      individual parts of Django. There are complete guides to Django's
+      :ref:`model system <topics-db-index>`, :ref:`template engine
+      <topics-templates>`, :ref:`forms framework <topics-forms-index>`, and much
+      more.`
+      
+      This is probably where you'll want to spent most of your time; if you work
+      your way through these guides you should come out knowing pretty much
+      everything there is to know about Django.
+
+    * Web development is often broad, not deep -- problems span many domains.
+      We've written a set of :ref:`how-to guides <howto-index>` that answer
+      common "How do I ...?" questions. Here you'll find information about
+      :ref:`generating PDFs with Django <howto-outputting-pdf>`, :ref:`writing
+      custom template tags <howto-custom-template-tags>`, and more.
+
+      Answers to really common questions can also be found in the :ref:`FAQ
+      <faq-index>`.
+
+    * The guides and how-to's don't cover every single class, function, and
+      method available in Django -- that would be overwhelming when you're
+      trying to learn. Instead, details about individual classes, functions,
+      methods, and modules are kept in the :ref:`reference <ref-index>`. This is
+      where you'll turn to find the details of a particular function or
+      whathaveyou.
+    
+    * Finally, there's some "specialized" documentation not usually relevant to
+      most developers. This includes the :ref:`release notes <releases-index>`,
+      :ref:`documentation of obsolete features <obsolete-index>`,
+      :ref:`internals documentation <internals-index>` for those who want to add
+      code to Django itself, and a :ref:`few other things that simply don't fit
+      elsewhere <misc-index>`.
+      
+
+How documentation is updated
+============================
+
+Just as the Django code base is developed and improved on a daily basis, our
+documentation is consistently improving. We improve documentation for several
+reasons:
+
+    * To make content fixes, such as grammar/typo corrections.
+
+    * To add information and/or examples to existing sections that need to be
+      expanded.
+
+    * To document Django features that aren't yet documented. (The list of
+      such features is shrinking but exists nonetheless.)
+
+    * To add documentation for new features as new features get added, or as
+      Django APIs or behaviors change.
+
+Django's documentation is kept in the same source control system as its code. It
+lives in the `django/trunk/docs`_ directory of our Subversion repository. Each
+document online is a separate text file in the repository.
+
+.. _django/trunk/docs: http://code.djangoproject.com/browser/django/trunk/docs
+
+Where to get it
+===============
+
+You can read Django documentation in several ways. They are, in order of
+preference:
+
+On the Web
+----------
+
+The most recent version of the Django documentation lives at
+http://www.djangoproject.com/documentation/ . These HTML pages are generated
+automatically from the text files in source control. That means they reflect the
+"latest and greatest" in Django -- they include the very latest corrections and
+additions, and they discuss the latest Django features, which may only be
+available to users of the Django development version. (See "Differences between
+versions" below.)
+
+We encourage you to help improve the docs by submitting changes, corrections and
+suggestions in the `ticket system`_. The Django developers actively monitor the
+ticket system and use your feedback to improve the documentation for everybody.
+
+Note, however, that tickets should explicitly relate to the documentation,
+rather than asking broad tech-support questions. If you need help with your
+particular Django setup, try the `django-users mailing list`_ or the `#django
+IRC channel`_ instead.
+
+.. _ticket system: http://code.djangoproject.com/simpleticket?component=Documentation
+.. _django-users mailing list: http://groups.google.com/group/django-users
+.. _#django IRC channel: irc://irc.freenode.net/django
+
+In plain text
+-------------
+
+For offline reading, or just for convenience, you can read the Django
+documentation in plain text.
+
+If you're using an official release of Django, note that the zipped package
+(tarball) of the code includes a ``docs/`` directory, which contains all the
+documentation for that release.
+
+If you're using the development version of Django (aka the Subversion "trunk"),
+note that the ``docs/`` directory contains all of the documentation. You can
+``svn update`` it, just as you ``svn update`` the Python code, in order to get
+the latest changes.
+
+You can check out the latest Django documentation from Subversion using this
+shell command:
+
+.. code-block:: bash
+
+    $ svn co http://code.djangoproject.com/svn/django/trunk/docs/ django_docs
+
+One low-tech way of taking advantage of the text documentation is by using the
+Unix ``grep`` utility to search for a phrase in all of the documentation. For
+example, this will show you each mention of the phrase "edit_inline" in any
+Django document:
+
+.. code-block:: bash
+
+    $ grep edit_inline /path/to/django/docs/*.txt
+    
+As HTML, locally
+----------------
+
+You can get a local copy of the HTML documentation following a few easy steps:
+
+    * Django's documentation uses a system called Sphinx__ to convert from
+      plain text to HTML. You'll need to install Sphinx by either downloading
+      and installing the package from the Sphinx website, or by Python's
+      ``easy_install``:
+      
+      .. code-block:: bash
+        
+            $ easy_install Sphinx
+    
+    * Then, just use the included ``Makefile`` to turn the documentation into
+      HTML:
+      
+      .. code-block:: bash
+      
+            $ cd path/to/django/docs
+            $ make html
+    
+      You'll need `GNU Make`__ installed for this.
+      
+    * The HTML documentation will be placed in ``docs/_build/html``.
+    
+.. warning::
+
+    At the time of this writing, Django's using a version of Sphinx not
+    yet released, so you'll currently need to install Sphinx from the
+    source. We'll fix this shortly.
+    
+__ http://sphinx.pocoo.org/
+__ http://www.gnu.org/software/make/
+
+Differences between versions
+============================
+
+As previously mentioned, the text documentation in our Subversion repository
+contains the "latest and greatest" changes and additions. These changes often
+include documentation of new features added in the Django development version
+-- the Subversion ("trunk") version of Django. For that reason, it's worth
+pointing out our policy on keeping straight the documentation for various
+versions of the framework.
+
+We follow this policy:
+
+    * The primary documentation on djangoproject.com is an HTML version of the
+      latest docs in Subversion. These docs always correspond to the latest
+      official Django release, plus whatever features we've added/changed in
+      the framework *since* the latest release.
+
+    * As we add features to Django's development version, we try to update the
+      documentation in the same Subversion commit transaction.
+
+    * To distinguish feature changes/additions in the docs, we use the phrase
+      **New in Django development version**. In practice, this means that the
+      current documentation on djangoproject.com can be used by users of either
+      the latest release *or* the development version.
+
+    * Documentation for a particular Django release is frozen once the version
+      has been released officially. It remains a snapshot of the docs as of the
+      moment of the release. We will make exceptions to this rule in
+      the case of retroactive security updates or other such retroactive
+      changes. Once documentation is frozen, we add a note to the top of each
+      frozen document that says "These docs are frozen for Django version XXX"
+      and links to the current version of that document.
+
+    * The `main documentation Web page`_ includes links to documentation for
+      all previous versions.
+
+.. _main documentation Web page: http://www.djangoproject.com/documentation/
diff --git a/docs/legacy_databases.txt b/docs/legacy_databases.txt
deleted file mode 100644
index b87a661f90..0000000000
--- a/docs/legacy_databases.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-==================================
-Integrating with a legacy database
-==================================
-
-While Django is best suited for developing new applications, it's quite
-possible to integrate it into legacy databases. Django includes a couple of
-utilities to automate as much of this process as possible.
-
-This document assumes you know the Django basics, as covered in the
-`official tutorial`_.
-
-.. _official tutorial: ../tutorial01/
-
-Give Django your database parameters
-====================================
-
-You'll need to tell Django what your database connection parameters are, and
-what the name of the database is. Do that by editing these settings in your
-`settings file`_:
-
-    * `DATABASE_NAME`_
-    * `DATABASE_ENGINE`_
-    * `DATABASE_USER`_
-    * `DATABASE_PASSWORD`_
-    * `DATABASE_HOST`_
-    * `DATABASE_PORT`_
-
-.. _settings file: ../settings/
-.. _DATABASE_NAME: ../settings/#database-name
-.. _DATABASE_ENGINE: ../settings/#database-engine
-.. _DATABASE_USER: ../settings/#database-user
-.. _DATABASE_PASSWORD: ../settings/#database-password
-.. _DATABASE_HOST: ../settings/#database-host
-.. _DATABASE_PORT: ../settings/#database-port
-
-Auto-generate the models
-========================
-
-Django comes with a utility that can create models by introspecting an existing
-database. You can view the output by running this command::
-
-    python manage.py inspectdb
-
-Save this as a file by using standard Unix output redirection::
-
-    python manage.py inspectdb > models.py
-
-This feature is meant as a shortcut, not as definitive model generation. See
-the `django-admin.py documentation`_ for more information.
-
-Once you've cleaned up your models, name the file ``models.py`` and put it in
-the Python package that holds your app. Then add the app to your
-``INSTALLED_APPS`` setting.
-
-.. _django-admin.py documentation: ../django-admin/
-
-Install the core Django tables
-==============================
-
-Next, run the ``manage.py syncdb`` command to install any extra needed database
-records such as admin permissions and content types::
-
-    python manage.py syncdb
-
-See whether it worked
-=====================
-
-That's it. Try accessing your data via the Django database API, and try editing
-objects via Django's admin site.
diff --git a/docs/localflavor.txt b/docs/localflavor.txt
deleted file mode 100644
index 71e353c5d8..0000000000
--- a/docs/localflavor.txt
+++ /dev/null
@@ -1,733 +0,0 @@
-==========================
-The "local flavor" add-ons
-==========================
-
-Following its "batteries included" philosophy, Django comes with assorted
-pieces of code that are useful for particular countries or cultures. These are
-called the "local flavor" add-ons and live in the ``django.contrib.localflavor``
-package.
-
-Inside that package, country- or culture-specific code is organized into
-subpackages, named using `ISO 3166 country codes`_.
-
-Most of the ``localflavor`` add-ons are localized form components deriving from
-the forms_ framework -- for example, a ``USStateField`` that knows how to
-validate U.S. state abbreviations, and a ``FISocialSecurityNumber`` that knows
-how to validate Finnish social security numbers.
-
-To use one of these localized components, just import the relevant subpackage.
-For example, here's how you can create a form with a field representing a
-French telephone number::
-
-    from django import forms
-    from django.contrib.localflavor import fr
-
-    class MyForm(forms.Form):
-        my_french_phone_no = fr.forms.FRPhoneNumberField()
-
-Supported countries
-===================
-
-Countries currently supported by ``localflavor`` are:
-
-    * Argentina_
-    * Australia_
-    * Austria_
-    * Brazil_
-    * Canada_
-    * Chile_
-    * Finland_
-    * France_
-    * Germany_
-    * Holland_
-    * Iceland_
-    * India_
-    * Italy_
-    * Japan_
-    * Mexico_
-    * Norway_
-    * Peru_
-    * Poland_
-    * Romania_
-    * Slovakia_
-    * `South Africa`_
-    * Spain_
-    * Switzerland_
-    * `United Kingdom`_
-    * `United States of America`_
-
-The ``localflavor`` package also includes a ``generic`` subpackage, containing
-useful code that is not specific to one particular country or culture.
-Currently, it defines date and datetime input fields based on those from
-forms_, but with non-US default formats. Here's an example of how to use
-them::
-
-    from django import forms
-    from django.contrib.localflavor import generic
-
-    class MyForm(forms.Form):
-        my_date_field = generic.forms.DateField()
-
-.. _ISO 3166 country codes: http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm
-.. _Argentina: `Argentina (django.contrib.localflavor.ar)`_
-.. _Australia: `Australia (django.contrib.localflavor.au)`_
-.. _Austria: `Austria (django.contrib.localflavor.at)`_
-.. _Brazil: `Brazil (django.contrib.localflavor.br)`_
-.. _Canada: `Canada (django.contrib.localflavor.ca)`_
-.. _Chile: `Chile (django.contrib.localflavor.cl)`_
-.. _Finland: `Finland (django.contrib.localflavor.fi)`_
-.. _France: `France (django.contrib.localflavor.fr)`_
-.. _Germany: `Germany (django.contrib.localflavor.de)`_
-.. _Holland: `Holland (django.contrib.localflavor.nl)`_
-.. _Iceland: `Iceland (django.contrib.localflavor.is\_)`_
-.. _India: `India (django.contrib.localflavor.in\_)`_
-.. _Italy: `Italy (django.contrib.localflavor.it)`_
-.. _Japan: `Japan (django.contrib.localflavor.jp)`_
-.. _Mexico: `Mexico (django.contrib.localflavor.mx)`_
-.. _Norway: `Norway (django.contrib.localflavor.no)`_
-.. _Peru: `Peru (django.contrib.localflavor.pe)`_
-.. _Poland: `Poland (django.contrib.localflavor.pl)`_
-.. _Romania: `Romania (django.contrib.localflavor.ro)`_
-.. _Slovakia: `Slovakia (django.contrib.localflavor.sk)`_
-.. _South Africa: `South Africa (django.contrib.localflavor.za)`_
-.. _Spain: `Spain (django.contrib.localflavor.es)`_
-.. _Switzerland: `Switzerland (django.contrib.localflavor.ch)`_
-.. _United Kingdom: `United Kingdom (django.contrib.localflavor.uk)`_
-.. _United States of America: `United States of America (django.contrib.localflavor.us)`_
-.. _forms: ../forms/
-
-Adding flavors
-==============
-
-We'd love to add more of these to Django, so please `create a ticket`_ with
-any code you'd like to contribute. One thing we ask is that you please use
-Unicode objects (``u'mystring'``) for strings, rather than setting the encoding
-in the file. See any of the existing flavors for examples.
-
-.. _create a ticket: http://code.djangoproject.com/simpleticket
-
-Argentina (``django.contrib.localflavor.ar``)
-=============================================
-
-ARPostalCodeField
------------------
-
-A form field that validates input as either a classic four-digit Argentinian
-postal code or a CPA_.
-
-.. _CPA: http://www.correoargentino.com.ar/consulta_cpa/home.php
-
-ARDNIField
-----------
-
-A form field that validates input as a Documento Nacional de Identidad (DNI)
-number.
-
-ARCUITField
------------
-
-A form field that validates input as a Código Único de Identificación
-Tributaria (CUIT) number.
-
-ARProvinceSelect
-----------------
-
-A ``Select`` widget that uses a list of Argentina's provinces and autonomous
-cities as its choices.
-
-Australia (``django.contrib.localflavor.au``)
-=============================================
-
-AUPostCodeField
----------------
-
-A form field that validates input as an Australian postcode.
-
-AUPhoneNumberField
-------------------
-
-A form field that validates input as an Australian phone number. Valid numbers
-have ten digits.
-
-AUStateSelect
--------------
-
-A ``Select`` widget that uses a list of Australian states/territories as its
-choices.
-
-Austria (``django.contrib.localflavor.at``)
-=============================================
-
-ATZipCodeField
----------------
-
-A form field that validates its input as an Austrian zip code.
-
-ATStateSelect
--------------
-
-A ``Select`` widget that uses a list of Austrian states as its choices. 
-
-ATSocialSecurityNumberField
----------------------------
-
-A form field that validates its input as an Austrian social security number.
-
-Brazil (``django.contrib.localflavor.br``)
-==========================================
-
-BRPhoneNumberField
-------------------
-
-A form field that validates input as a Brazilian phone number, with the format
-XX-XXXX-XXXX.
-
-BRZipCodeField
---------------
-
-A form field that validates input as a Brazilian zip code, with the format
-XXXXX-XXX.
-
-BRStateSelect
--------------
-
-A ``Select`` widget that uses a list of Brazilian states/territories as its
-choices.
-
-Canada (``django.contrib.localflavor.ca``)
-==========================================
-
-CAPhoneNumberField
-------------------
-
-A form field that validates input as a Canadian phone number, with the format
-XXX-XXX-XXXX.
-
-CAPostalCodeField
------------------
-
-A form field that validates input as a Canadian postal code, with the format
-XXX XXX.
-
-CAProvinceField
----------------
-
-A form field that validates input as a Canadian province name or abbreviation.
-
-CASocialInsuranceNumberField
-----------------------------
-
-A form field that validates input as a Canadian Social Insurance Number (SIN).
-A valid number must have the format XXX-XXX-XXX and pass a `Luhn mod-10
-checksum`_.
-
-.. _Luhn mod-10 checksum: http://en.wikipedia.org/wiki/Luhn_algorithm
-
-CAProvinceSelect
-----------------
-
-A ``Select`` widget that uses a list of Canadian provinces and territories as
-its choices.
-
-Chile (``django.contrib.localflavor.cl``)
-=========================================
-
-CLRutField
-----------
-
-A form field that validates input as a Chilean national identification number
-('Rol Unico Tributario' or RUT). The valid format is XX.XXX.XXX-X.
-
-CLRegionSelect
---------------
-
-A ``Select`` widget that uses a list of Chilean regions (Regiones) as its
-choices.
-
-Finland (``django.contrib.localflavor.fi``)
-===========================================
-
-FISocialSecurityNumber
-----------------------
-
-A form field that validates input as a Finnish social security number.
-
-FIZipCodeField
---------------
-
-A form field that validates input as a Finnish zip code. Valid codes
-consist of five digits.
-
-FIMunicipalitySelect
---------------------
-
-A ``Select`` widget that uses a list of Finnish municipalities as its
-choices.
-
-France (``django.contrib.localflavor.fr``)
-==========================================
-
-FRPhoneNumberField
-------------------
-
-A form field that validates input as a French local phone number. The
-correct format is 0X XX XX XX XX. 0X.XX.XX.XX.XX and 0XXXXXXXXX validate
-but are corrected to 0X XX XX XX XX.
-
-FRZipCodeField
---------------
-
-A form field that validates input as a French zip code. Valid codes
-consist of five digits.
-
-FRDepartmentSelect
-------------------
-
-A ``Select`` widget that uses a list of French departments as its choices.
-
-Germany (``django.contrib.localflavor.de``)
-===========================================
-
-DEIdentityCardNumberField
--------------------------
-
-A form field that validates input as a German identity card number
-(Personalausweis_). Valid numbers have the format
-XXXXXXXXXXX-XXXXXXX-XXXXXXX-X, with no group consisting entirely of zeroes.
-
-.. _Personalausweis: http://de.wikipedia.org/wiki/Personalausweis
-
-DEZipCodeField
---------------
-
-A form field that validates input as a German zip code. Valid codes
-consist of five digits.
-
-DEStateSelect
--------------
-
-A ``Select`` widget that uses a list of German states as its choices.
-
-Holland (``django.contrib.localflavor.nl``)
-===========================================
-
-NLPhoneNumberField
-------------------
-
-A form field that validates input as a Dutch telephone number.
-
-NLSofiNumberField
------------------
-
-A form field that validates input as a Dutch social security number
-(SoFI/BSN).
-
-NLZipCodeField
---------------
-
-A form field that validates input as a Dutch zip code.
-
-NLProvinceSelect
-----------------
-
-A ``Select`` widget that uses a list of Dutch provinces as its list of
-choices.
-
-Iceland (``django.contrib.localflavor.is_``)
-============================================
-
-ISIdNumberField
----------------
-
-A form field that validates input as an Icelandic identification number
-(kennitala). The format is XXXXXX-XXXX.
-
-ISPhoneNumberField
-------------------
-
-A form field that validates input as an Icelandtic phone number (seven
-digits with an optional hyphen or space after the first three digits).
-
-ISPostalCodeSelect
-------------------
-
-A ``Select`` widget that uses a list of Icelandic postal codes as its
-choices.
-
-India (``django.contrib.localflavor.in_``)
-==========================================
-
-INStateField
-------------
-
-A form field that validates input as an Indian state/territory name or
-abbreviation. Input is normalized to the standard two-letter vehicle
-registration abbreviation for the given state or territory.
-
-INZipCodeField
---------------
-
-A form field that validates input as an Indian zip code, with the
-format XXXXXXX.
-
-INStateSelect
--------------
-
-A ``Select`` widget that uses a list of Indian states/territories as its
-choices.
-
-Italy (``django.contrib.localflavor.it``)
-=========================================
-
-ITSocialSecurityNumberField
----------------------------
-
-A form field that validates input as an Italian social security number
-(`codice fiscale`_).
-
-.. _codice fiscale: http://www.agenziaentrate.it/ilwwcm/connect/Nsi/Servizi/Codice+fiscale+-+tessera+sanitaria/Codice+fiscale/NSI+Informazioni+sulla+codificazione+delle+persone+fisiche
-
-ITVatNumberField
-----------------
-
-A form field that validates Italian VAT numbers (partita IVA).
-
-ITZipCodeField
---------------
-
-A form field that validates input as an Italian zip code. Valid codes
-must have five digits.
-
-ITProvinceSelect
-----------------
-
-A ``Select`` widget that uses a list of Italian provinces as its choices.
-
-ITRegionSelect
---------------
-
-A ``Select`` widget that uses a list of Italian regions as its choices.
-
-Japan (``django.contrib.localflavor.jp``)
-=========================================
-
-JPPostalCodeField
------------------
-
-A form field that validates input as a Japanese postcode. It accepts seven
-digits, with or without a hyphen.
-
-JPPrefectureSelect
-------------------
-
-A ``Select`` widget that uses a list of Japanese prefectures as its choices.
-
-Mexico (``django.contrib.localflavor.mx``)
-==========================================
-
-MXStateSelect
--------------
-
-A ``Select`` widget that uses a list of Mexican states as its choices.
-
-Norway (``django.contrib.localflavor.no``)
-==========================================
-
-NOSocialSecurityNumber
-----------------------
-
-A form field that validates input as a Norwegian social security number
-(personnummer_).
-
-.. _personnummer: http://no.wikipedia.org/wiki/Personnummer
-
-NOZipCodeField
---------------
-
-A form field that validates input as a Norwegian zip code. Valid codes
-have four digits.
-
-NOMunicipalitySelect
---------------------
-
-A ``Select`` widget that uses a list of Norwegian municipalities (fylker) as
-its choices.
-
-Peru (``django.contrib.localflavor.pe``)
-========================================
-
-PEDNIField
-----------
-
-A form field that validates input as a DNI (Peruvian national identity)
-number.
-
-PERUCField
-----------
-
-A form field that validates input as an RUC (Registro Unico de
-Contribuyentes) number. Valid RUC numbers have 11 digits.
-
-PEDepartmentSelect
-------------------
-
-A ``Select`` widget that uses a list of Peruvian Departments as its choices.
-
-Poland (``django.contrib.localflavor.pl``)
-==========================================
-
-PLNationalIdentificationNumberField
------------------------------------
-
-A form field that validates input as a Polish national identification number
-(PESEL_).
-
-.. _PESEL: http://en.wikipedia.org/wiki/PESEL
-
-PLNationalBusinessRegisterField
--------------------------------
-
-A form field that validates input as a Polish National Official Business
-Register Number (REGON_), having either seven or nine digits. The checksum
-algorithm used for REGONs is documented at
-http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
-
-.. _REGON: http://www.stat.gov.pl/bip/regon_ENG_HTML.htm
-
-PLPostalCodeField
------------------
-
-A form field that validates input as a Polish postal code. The valid format
-is XX-XXX, where X is a digit.
-
-PLTaxNumberField
-----------------
-
-A form field that validates input as a Polish Tax Number (NIP). Valid
-formats are XXX-XXX-XX-XX or XX-XX-XXX-XXX. The checksum algorithm used
-for NIPs is documented at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
-
-PLAdministrativeUnitSelect
---------------------------
-
-A ``Select`` widget that uses a list of Polish administrative units as its
-choices.
-
-PLVoivodeshipSelect
--------------------
-
-A ``Select`` widget that uses a list of Polish voivodeships (administrative
-provinces) as its choices.
-
-Romania (``django.contrib.localflavor.ro``)
-============================================
-
-ROCIFField
-----------
-
-A form field that validates Romanian fiscal identification codes (CIF). The
-return value strips the leading RO, if given.
-
-ROCNPField
-----------
-
-A form field that validates Romanian personal numeric codes (CNP).
-
-ROCountyField
--------------
-
-A form field that validates its input as a Romanian county (judet) name or
-abbreviation. It normalizes the input to the standard vehicle registration
-abbreviation for the given county. This field will only accept names written
-with diacritics; consider using ROCountySelect as an alternative.
-
-ROCountySelect
---------------
-
-A ``Select`` widget that uses a list of Romanian counties (judete) as its
-choices.
-
-ROIBANField
------------
-
-A form field that validates its input as a Romanian International Bank 
-Account Number (IBAN). The valid format is ROXX-XXXX-XXXX-XXXX-XXXX-XXXX,
-with or without hyphens.
-
-ROPhoneNumberField
-------------------
-
-A form field that validates Romanian phone numbers, short special numbers
-excluded.
-
-ROPostalCodeField
------------------
-
-A form field that validates Romanian postal codes.
-
-Slovakia (``django.contrib.localflavor.sk``)
-============================================
-
-SKPostalCodeField
------------------
-
-A form field that validates input as a Slovak postal code. Valid formats
-are XXXXX or XXX XX, where X is a digit.
-
-SKDistrictSelect
-----------------
-
-A ``Select`` widget that uses a list of Slovak districts as its choices.
-
-SKRegionSelect
---------------
-
-A ``Select`` widget that uses a list of Slovak regions as its choices.
-
-South Africa (``django.contrib.localflavor.za``)
-================================================
-
-ZAIDField
----------
-
-A form field that validates input as a South African ID number. Validation
-uses the Luhn checksum and a simplistic (i.e., not entirely accurate) check
-for birth date.
-
-ZAPostCodeField
----------------
-
-A form field that validates input as a South African postcode. Valid
-postcodes must have four digits.
-
-Spain (``django.contrib.localflavor.es``)
-=========================================
-
-ESIdentityCardNumberField
--------------------------
-
-A form field that validates input as a Spanish NIF/NIE/CIF (Fiscal
-Identification Number) code.
-
-ESCCCField
-----------
-
-A form field that validates input as a Spanish bank account number (Codigo
-Cuenta Cliente or CCC). A valid CCC number has the format
-EEEE-OOOO-CC-AAAAAAAAAA, where the E, O, C and A digits denote the entity,
-office, checksum and account, respectively. The first checksum digit
-validates the entity and office. The second checksum digit validates the
-account. It is also valid to use a space as a delimiter, or to use no
-delimiter.
-
-ESPhoneNumberField
-------------------
-
-A form field that validates input as a Spanish phone number. Valid numbers
-have nine digits, the first of which is 6, 8 or 9.
-
-ESPostalCodeField
------------------
-
-A form field that validates input as a Spanish postal code. Valid codes
-have five digits, the first two being in the range 01 to 52, representing
-the province.
-
-ESProvinceSelect
-----------------
-
-A ``Select`` widget that uses a list of Spanish provinces as its choices.
-
-ESRegionSelect
---------------
-
-A ``Select`` widget that uses a list of Spanish regions as its choices.
-
-Switzerland (``django.contrib.localflavor.ch``)
-===============================================
-
-CHIdentityCardNumberField
--------------------------
-
-A form field that validates input as a Swiss identity card number.
-A valid number must confirm to the X1234567<0 or 1234567890 format and
-have the correct checksums -- see http://adi.kousz.ch/artikel/IDCHE.htm.
-
-CHPhoneNumberField
-------------------
-
-A form field that validates input as a Swiss phone number. The correct
-format is 0XX XXX XX XX. 0XX.XXX.XX.XX and 0XXXXXXXXX validate but are
-corrected to 0XX XXX XX XX.
-
-CHZipCodeField
---------------
-
-A form field that validates input as a Swiss zip code. Valid codes
-consist of four digits.
-
-CHStateSelect
--------------
-
-A ``Select`` widget that uses a list of Swiss states as its choices.
-
-United Kingdom (``django.contrib.localflavor.uk``)
-==================================================
-
-UKPostcodeField
----------------
-
-A form field that validates input as a UK postcode. The regular
-expression used is sourced from the schema for British Standard BS7666
-address types at http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd.
-
-UKCountySelect
---------------
-
-A ``Select`` widget that uses a list of UK counties/regions as its choices.
-
-UKNationSelect
---------------
-
-A ``Select`` widget that uses a list of UK nations as its choices.
-
-United States of America (``django.contrib.localflavor.us``)
-============================================================
-
-USPhoneNumberField
-------------------
-
-A form field that validates input as a U.S. phone number.
-
-USSocialSecurityNumberField
----------------------------
-
-A form field that validates input as a U.S. Social Security Number (SSN).
-A valid SSN must obey the following rules:
-
-    * Format of XXX-XX-XXXX
-    * No group of digits consisting entirely of zeroes
-    * Leading group of digits cannot be 666
-    * Number not in promotional block 987-65-4320 through 987-65-4329
-    * Number not one known to be invalid due to widespread promotional
-      use or distribution (e.g., the Woolworth's number or the 1962
-      promotional number)
-
-USStateField
-------------
-
-A form field that validates input as a U.S. state name or abbreviation. It
-normalizes the input to the standard two-letter postal service abbreviation
-for the given state.
-
-USZipCodeField
---------------
-
-A form field that validates input as a U.S. ZIP code. Valid formats are
-XXXXX or XXXXX-XXXX.
-
-USStateSelect
--------------
-
-A form ``Select`` widget that uses a list of U.S. states/territories as its
-choices.
diff --git a/docs/man/django-admin.1 b/docs/man/django-admin.1
index 2f4b5a02d8..6b58c9183b 100644
--- a/docs/man/django-admin.1
+++ b/docs/man/django-admin.1
@@ -159,8 +159,7 @@ The file extension(s) to examine (default: ".html", separate multiple
 extensions with commas, or use -e multiple times).
 .TP
 .I \-a, \-\-all
-Process all available locales when using makemessages.
-.SH "ENVIRONMENT"
+Process all available locales when using makemessages..SH "ENVIRONMENT"
 .TP
 .I DJANGO_SETTINGS_MODULE
 In the absence of the
diff --git a/docs/middleware.txt b/docs/middleware.txt
deleted file mode 100644
index c61bd7c5cc..0000000000
--- a/docs/middleware.txt
+++ /dev/null
@@ -1,288 +0,0 @@
-==========
-Middleware
-==========
-
-Middleware is a framework of hooks into Django's request/response processing.
-It's a light, low-level "plugin" system for globally altering Django's input
-and/or output.
-
-Each middleware component is responsible for doing some specific function. For
-example, Django includes a middleware component, ``XViewMiddleware``, that adds
-an ``"X-View"`` HTTP header to every response to a ``HEAD`` request.
-
-This document explains all middleware components that come with Django, how to
-use them, and how to write your own middleware.
-
-Activating middleware
-=====================
-
-To activate a middleware component, add it to the ``MIDDLEWARE_CLASSES`` list
-in your Django settings. In ``MIDDLEWARE_CLASSES``, each middleware component
-is represented by a string: the full Python path to the middleware's class
-name. For example, here's the default ``MIDDLEWARE_CLASSES`` created by
-``django-admin.py startproject``::
-
-    MIDDLEWARE_CLASSES = (
-        'django.middleware.common.CommonMiddleware',
-        'django.contrib.sessions.middleware.SessionMiddleware',
-        'django.contrib.auth.middleware.AuthenticationMiddleware',
-        'django.middleware.doc.XViewMiddleware',
-    )
-
-Django applies middleware in the order it's defined in ``MIDDLEWARE_CLASSES``,
-except in the case of response and exception middleware, which is applied in
-reverse order.
-
-A Django installation doesn't require any middleware -- e.g.,
-``MIDDLEWARE_CLASSES`` can be empty, if you'd like -- but it's strongly
-suggested that you use ``CommonMiddleware``.
-
-Available middleware
-====================
-
-django.middleware.cache.CacheMiddleware
----------------------------------------
-
-Enables site-wide cache. If this is enabled, each Django-powered page will be
-cached for as long as the ``CACHE_MIDDLEWARE_SECONDS`` setting defines. See
-the `cache documentation`_.
-
-.. _`cache documentation`: ../cache/#the-per-site-cache
-
-django.middleware.common.CommonMiddleware
------------------------------------------
-
-Adds a few conveniences for perfectionists:
-
-* Forbids access to user agents in the ``DISALLOWED_USER_AGENTS`` setting,
-  which should be a list of strings.
-
-* Performs URL rewriting based on the ``APPEND_SLASH`` and ``PREPEND_WWW``
-  settings.
-
-  If ``APPEND_SLASH`` is ``True`` and the initial URL doesn't end with a slash,
-  and it is not found in the URLconf, then a new URL is formed by appending a
-  slash at the end. If this new URL is found in the URLconf, then Django
-  redirects the request to this new URL. Otherwise, the initial URL is
-  processed as usual.
-
-  For example, ``foo.com/bar`` will be redirected to ``foo.com/bar/`` if you
-  don't have a valid URL pattern for ``foo.com/bar`` but *do* have a valid
-  pattern for ``foo.com/bar/``.
-
-  **New in Django development version:** The behavior of ``APPEND_SLASH`` has
-  changed slightly in the development version. It didn't used to check whether
-  the pattern was matched in the URLconf.
-
-  If ``PREPEND_WWW`` is ``True``, URLs that lack a leading "www." will be
-  redirected to the same URL with a leading "www."
-
-  Both of these options are meant to normalize URLs. The philosophy is that
-  each URL should exist in one, and only one, place. Technically a URL
-  ``foo.com/bar`` is distinct from ``foo.com/bar/`` -- a search-engine
-  indexer would treat them as separate URLs -- so it's best practice to
-  normalize URLs.
-
-* Handles ETags based on the ``USE_ETAGS`` setting. If ``USE_ETAGS`` is set
-  to ``True``, Django will calculate an ETag for each request by
-  MD5-hashing the page content, and it'll take care of sending
-  ``Not Modified`` responses, if appropriate.
-
-django.middleware.doc.XViewMiddleware
--------------------------------------
-
-Sends custom ``X-View`` HTTP headers to HEAD requests that come from IP
-addresses defined in the ``INTERNAL_IPS`` setting. This is used by Django's
-automatic documentation system.
-
-django.middleware.gzip.GZipMiddleware
--------------------------------------
-
-Compresses content for browsers that understand gzip compression (all modern
-browsers).
-
-It is suggested to place this first in the middleware list, so that the
-compression of the response content is the last thing that happens. Will not
-compress content bodies less than 200 bytes long, when the response code is
-something other than 200, JavaScript files (for IE compatibitility), or
-responses that have the ``Content-Encoding`` header already specified.
-
-django.middleware.http.ConditionalGetMiddleware
------------------------------------------------
-
-Handles conditional GET operations. If the response has a ``ETag`` or
-``Last-Modified`` header, and the request has ``If-None-Match`` or
-``If-Modified-Since``, the response is replaced by an HttpNotModified.
-
-Also sets the ``Date`` and ``Content-Length`` response-headers.
-
-django.middleware.http.SetRemoteAddrFromForwardedFor
-----------------------------------------------------
-
-Sets ``request.META['REMOTE_ADDR']`` based on
-``request.META['HTTP_X_FORWARDED_FOR']``, if the latter is set. This is useful
-if you're sitting behind a reverse proxy that causes each request's
-``REMOTE_ADDR`` to be set to ``127.0.0.1``.
-
-**Important note:** This does NOT validate ``HTTP_X_FORWARDED_FOR``. If you're
-not behind a reverse proxy that sets ``HTTP_X_FORWARDED_FOR`` automatically, do
-not use this middleware. Anybody can spoof the value of
-``HTTP_X_FORWARDED_FOR``, and because this sets ``REMOTE_ADDR`` based on
-``HTTP_X_FORWARDED_FOR``, that means anybody can "fake" their IP address. Only
-use this when you can absolutely trust the value of ``HTTP_X_FORWARDED_FOR``.
-
-django.middleware.locale.LocaleMiddleware
------------------------------------------
-
-Enables language selection based on data from the request. It customizes content
-for each user. See the `internationalization documentation`_.
-
-.. _`internationalization documentation`: ../i18n/
-
-django.contrib.sessions.middleware.SessionMiddleware
-----------------------------------------------------
-
-Enables session support. See the `session documentation`_.
-
-.. _`session documentation`: ../sessions/
-
-django.contrib.auth.middleware.AuthenticationMiddleware
--------------------------------------------------------
-
-Adds the ``user`` attribute, representing the currently-logged-in user, to
-every incoming ``HttpRequest`` object. See `Authentication in Web requests`_.
-
-.. _Authentication in Web requests: ../authentication/#authentication-in-web-requests
-
-django.contrib.csrf.middleware.CsrfMiddleware
----------------------------------------------
-
-**New in Django development version**
-
-Adds protection against Cross Site Request Forgeries by adding hidden form
-fields to POST forms and checking requests for the correct value. See the
-`Cross Site Request Forgery protection documentation`_.
-
-.. _`Cross Site Request Forgery protection documentation`: ../csrf/
-
-django.middleware.transaction.TransactionMiddleware
----------------------------------------------------
-
-Binds commit and rollback to the request/response phase. If a view function runs
-successfully, a commit is done. If it fails with an exception, a rollback is
-done.
-
-The order of this middleware in the stack is important: middleware modules
-running outside of it run with commit-on-save - the default Django behavior.
-Middleware modules running inside it (coming later in the stack) will be under
-the same transaction control as the view functions.
-
-See the `transaction management documentation`_.
-
-.. _`transaction management documentation`: ../transactions/
-
-Writing your own middleware
-===========================
-
-Writing your own middleware is easy. Each middleware component is a single
-Python class that defines one or more of the following methods:
-
-``process_request``
--------------------
-
-Interface: ``process_request(self, request)``
-
-``request`` is an ``HttpRequest`` object. This method is called on each
-request, before Django decides which view to execute.
-
-``process_request()`` should return either ``None`` or an ``HttpResponse``
-object. If it returns ``None``, Django will continue processing this request,
-executing any other middleware and, then, the appropriate view. If it returns
-an ``HttpResponse`` object, Django won't bother calling ANY other request,
-view or exception middleware, or the appropriate view; it'll return that
-``HttpResponse``. Response middleware is always called on every response.
-
-``process_view``
-----------------
-
-Interface: ``process_view(self, request, view_func, view_args, view_kwargs)``
-
-``request`` is an ``HttpRequest`` object. ``view_func`` is the Python function
-that Django is about to use. (It's the actual function object, not the name of
-the function as a string.) ``view_args`` is a list of positional arguments that
-will be passed to the view, and ``view_kwargs`` is a dictionary of keyword
-arguments that will be passed to the view. Neither ``view_args`` nor
-``view_kwargs`` include the first view argument (``request``).
-
-``process_view()`` is called just before Django calls the view. It should
-return either ``None`` or an ``HttpResponse`` object. If it returns ``None``,
-Django will continue processing this request, executing any other
-``process_view()`` middleware and, then, the appropriate view. If it returns an
-``HttpResponse`` object, Django won't bother calling ANY other request, view
-or exception middleware, or the appropriate view; it'll return that
-``HttpResponse``. Response middleware is always called on every response.
-
-``process_response``
---------------------
-
-Interface: ``process_response(self, request, response)``
-
-``request`` is an ``HttpRequest`` object. ``response`` is the ``HttpResponse``
-object returned by a Django view.
-
-``process_response()`` should return an ``HttpResponse`` object. It could alter
-the given ``response``, or it could create and return a brand-new
-``HttpResponse``.
-
-``process_exception``
----------------------
-
-Interface: ``process_exception(self, request, exception)``
-
-``request`` is an ``HttpRequest`` object. ``exception`` is an ``Exception``
-object raised by the view function.
-
-Django calls ``process_exception()`` when a view raises an exception.
-``process_exception()`` should return either ``None`` or an ``HttpResponse``
-object. If it returns an ``HttpResponse`` object, the response will be returned
-to the browser. Otherwise, default exception handling kicks in.
-
-``__init__``
-------------
-
-Most middleware classes won't need an initializer since middleware classes are
-essentially placeholders for the ``process_*`` methods. If you do need some
-global state you may use ``__init__`` to set up. However, keep in mind a couple
-of caveats:
-
-    * Django initializes your middleware without any arguments, so you can't
-      define ``__init__`` as requiring any arguments.
-      
-    * Unlike the ``process_*`` methods which get called once per request,
-      ``__init__`` gets called only *once*, when the web server starts up.
-
-Marking middleware as unused
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It's sometimes useful to determine at run-time whether a piece of middleware
-should be used. In these cases, your middleware's ``__init__`` method may raise
-``django.core.exceptions.MiddlewareNotUsed``. Django will then remove that piece
-of middleware from the middleware process.
-
-Guidelines
-----------
-
-    * Middleware classes don't have to subclass anything.
-
-    * The middleware class can live anywhere on your Python path. All Django
-      cares about is that the ``MIDDLEWARE_CLASSES`` setting includes the path
-      to it.
-
-    * Feel free to look at Django's available middleware for examples. The
-      core Django middleware classes are in ``django/middleware/`` in the
-      Django distribution. The session middleware is in
-      ``django/contrib/sessions``.
-
-    * If you write a middleware component that you think would be useful to
-      other people, contribute to the community! Let us know, and we'll
-      consider adding it to Django.
diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt
new file mode 100644
index 0000000000..0bf4b984c4
--- /dev/null
+++ b/docs/misc/api-stability.txt
@@ -0,0 +1,95 @@
+.. _misc-api-stability:
+
+=============
+API stability
+=============
+
+Although Django has not reached a 1.0 release, the bulk of Django's public APIs are
+stable as of the 0.95 release. This document explains which APIs will and will not
+change before the 1.0 release.
+
+What "stable" means
+===================
+
+In this context, stable means:
+
+   - All the public APIs -- everything documented in the linked documents, and
+     all methods that don't begin with an underscore -- will not be moved or
+     renamed without providing backwards-compatible aliases.
+     
+   - If new features are added to these APIs -- which is quite possible --
+     they will not break or change the meaning of existing methods. In other
+     words, "stable" does not (necessarily) mean "complete."
+     
+   - If, for some reason, an API declared stable must be removed or replaced, it
+     will be declared deprecated but will remain in the API until at least
+     version 1.1. Warnings will be issued when the deprecated method is
+     called.
+     
+   - We'll only break backwards compatibility of these APIs if a bug or
+     security hole makes it completely unavoidable.
+
+Stable APIs
+===========
+
+These APIs are stable:
+
+   - :ref:`Caching <topics-cache>`.
+   
+   - :ref:`Custom template tags and libraries <howto-custom-template-tags>`.
+     
+   - :ref:`Database lookup <topics-db-queries>` (with the exception of validation; see below).
+    
+   - :ref:`django-admin utility <ref-django-admin>`.
+   
+   - :ref:`FastCGI and mod_python integration <howto-deployment-index>`.
+   
+   - :ref:`Flatpages <ref-contrib-flatpages>`.
+   
+   - :ref:`Generic views <topics-http-generic-views>`.
+   
+   - :ref:`Internationalization <topics-i18n>`.
+   
+   - :ref:`Legacy database integration <howto-legacy-databases>`.
+   
+   - :ref:`Model definition <topics-db-models>` (with the exception of generic relations; see below).
+      
+   - :ref:`Redirects <ref-contrib-redirects>`.
+   
+   - :ref:`Request/response objects <ref-request-response>`.
+   
+   - :ref:`Sending e-mail <topics-email>`.
+   
+   - :ref:`Sessions <topics-http-sessions>`.
+   
+   - :ref:`Settings <topics-settings>`.
+   
+   - :ref:`Syndication <ref-contrib-syndication>`.
+   
+   - :ref:`Template language <topics-templates>` (with the exception of some
+     possible disambiguation of how tag arguments are passed to tags and
+     filters).
+   
+   - :ref:`Transactions <topics-db-transactions>`.
+   
+   - :ref:`URL dispatch <topics-http-urls>`.
+   
+You'll notice that this list comprises the bulk of Django's APIs. That's right
+-- most of the changes planned between now and Django 1.0 are either under the
+hood, feature additions, or changes to a few select bits. A good estimate is
+that 90% of Django can be considered forwards-compatible at this point.
+
+That said, these APIs should *not* be considered stable, and are likely to
+change:
+
+   - :ref:`Serialization <topics-serialization>` is under development; changes
+     are possible.
+
+   - Generic relations will most likely be moved out of core and into the
+     content-types contrib package to avoid core dependencies on optional
+     components.
+     
+     **New in development version**: this has now been done.
+
+   - The comments framework, which is yet undocumented, will get a complete
+     rewrite before Django 1.0.
diff --git a/docs/design_philosophies.txt b/docs/misc/design-philosophies.txt
similarity index 93%
rename from docs/design_philosophies.txt
rename to docs/misc/design-philosophies.txt
index 465c4b547e..43bb8096c9 100644
--- a/docs/design_philosophies.txt
+++ b/docs/misc/design-philosophies.txt
@@ -1,3 +1,5 @@
+.. _misc-design-philosophies:
+
 ===================
 Design philosophies
 ===================
@@ -9,9 +11,13 @@ the future.
 Overall
 =======
 
+.. _loose-coupling:
+
 Loose coupling
 --------------
 
+.. index:: coupling; loose
+
 A fundamental goal of Django's stack is `loose coupling and tight cohesion`_.
 The various layers of the framework shouldn't "know" about each other unless
 absolutely necessary.
@@ -25,6 +31,8 @@ stack are independent of another wherever possible.
 
 .. _`loose coupling and tight cohesion`: http://c2.com/cgi/wiki?CouplingAndCohesion
 
+.. _less-code:
+
 Less code
 ---------
 
@@ -32,6 +40,8 @@ Django apps should use as little code as possible; they should lack boilerplate.
 Django should take full advantage of Python's dynamic capabilities, such as
 introspection.
 
+.. _quick-development:
+
 Quick development
 -----------------
 
@@ -39,15 +49,29 @@ The point of a Web framework in the 21st century is to make the tedious aspects
 of Web development fast. Django should allow for incredibly quick Web
 development.
 
+.. _dry:
+
 Don't repeat yourself (DRY)
 ---------------------------
 
+.. index::
+   single: DRY
+   single: Don't repeat yourself
+
 Every distinct concept and/or piece of data should live in one, and only one,
 place. Redundancy is bad. Normalization is good.
 
 The framework, within reason, should deduce as much as possible from as little
 as possible.
 
+.. seealso::
+
+    The `discussion of DRY on the Portland Pattern Repository`__
+
+    __ http://c2.com/cgi/wiki?DontRepeatYourself
+    
+.. _explicit-is-better-than-implicit:
+
 Explicit is better than implicit
 --------------------------------
 
@@ -59,6 +83,8 @@ learn how to use the feature.
 
 .. _`core Python principle`: http://www.python.org/dev/peps/pep-0020/
 
+.. _consistency:
+
 Consistency
 -----------
 
@@ -155,19 +181,25 @@ File extensions in Web-page URLs should be avoided.
 
 Vignette-style commas in URLs deserve severe punishment.
 
+.. _definitive-urls:
+
 Definitive URLs
 ---------------
 
+.. index:: urls; definitive
+
 Technically, ``foo.com/bar`` and ``foo.com/bar/`` are two different URLs, and
 search-engine robots (and some Web traffic-analyzing tools) would treat them as
 separate pages. Django should make an effort to "normalize" URLs so that
 search-engine robots don't get confused.
 
-This is the reasoning behind the ``APPEND_SLASH`` setting.
+This is the reasoning behind the :setting:`APPEND_SLASH` setting.
 
 Template system
 ===============
 
+.. _separation-of-logic-and-presentation:
+
 Separate logic from presentation
 --------------------------------
 
@@ -186,9 +218,8 @@ a common header, footer, navigation bar, etc. The Django template system should
 make it easy to store those elements in a single place, eliminating duplicate
 code.
 
-This is the philosophy behind `template inheritance`_.
-
-.. _template inheritance: ../templates/#template-inheritance
+This is the philosophy behind :ref:`template inheritance
+<template-inheritance>`.
 
 Be decoupled from HTML
 ----------------------
@@ -200,6 +231,8 @@ text.
 XML should not be used for template languages
 ---------------------------------------------
 
+.. index:: xml; suckiness of
+
 Using an XML engine to parse templates introduces a whole new world of human
 error in editing templates -- and incurs an unacceptable level of overhead in
 template processing.
diff --git a/docs/distributions.txt b/docs/misc/distributions.txt
similarity index 95%
rename from docs/distributions.txt
rename to docs/misc/distributions.txt
index 0c051c8da5..c94c399ce0 100644
--- a/docs/distributions.txt
+++ b/docs/misc/distributions.txt
@@ -1,3 +1,5 @@
+.. _misc-distributions:
+
 ===================================
 Third-party distributions of Django
 ===================================
@@ -10,10 +12,8 @@ requires.
 
 Typically, these packages are based on the latest stable release of Django, so
 if you want to use the development version of Django you'll need to follow the
-instructions for `installing the development version`_ from our Subversion
-repository.
-
-.. _installing the development version: ../install/#installing-the-development-version
+instructions for :ref:`installing the development version
+<installing-development-version>` from our Subversion repository.
 
 FreeBSD
 =======
diff --git a/docs/misc/index.txt b/docs/misc/index.txt
new file mode 100644
index 0000000000..534171b6ed
--- /dev/null
+++ b/docs/misc/index.txt
@@ -0,0 +1,14 @@
+.. _misc-index:
+
+Meta-documentation and miscellany
+=================================
+
+Documentation that we can't find a more organized place for. Like that drawer in
+your kitchen with the scissors, batteries, duct tape, and other junk.
+
+.. toctree::
+   :maxdepth: 2
+   
+   api-stability
+   design-philosophies
+   distributions
diff --git a/docs/model-api.txt b/docs/model-api.txt
deleted file mode 100644
index a203aa38c8..0000000000
--- a/docs/model-api.txt
+++ /dev/null
@@ -1,2145 +0,0 @@
-===============
-Model reference
-===============
-
-A model is the single, definitive source of data about your data. It contains
-the essential fields and behaviors of the data you're storing. Generally, each
-model maps to a single database table.
-
-The basics:
-
-    * Each model is a Python class that subclasses ``django.db.models.Model``.
-    * Each attribute of the model represents a database field.
-    * Model metadata (non-field information) goes in an inner class named
-      ``Meta``.
-    * With all of this, Django gives you an automatically-generated
-      database-access API, which is explained in the `Database API reference`_.
-
-A companion to this document is the `official repository of model examples`_.
-(In the Django source distribution, these examples are in the
-``tests/modeltests`` directory.)
-
-.. _Database API reference: ../db-api/
-.. _official repository of model examples: ../models/
-
-Quick example
-=============
-
-This example model defines a ``Person``, which has a ``first_name`` and
-``last_name``::
-
-    from django.db import models
-
-    class Person(models.Model):
-        first_name = models.CharField(max_length=30)
-        last_name = models.CharField(max_length=30)
-
-``first_name`` and ``last_name`` are *fields* of the model. Each field is
-specified as a class attribute, and each attribute maps to a database column.
-
-The above ``Person`` model would create a database table like this::
-
-    CREATE TABLE myapp_person (
-        "id" serial NOT NULL PRIMARY KEY,
-        "first_name" varchar(30) NOT NULL,
-        "last_name" varchar(30) NOT NULL
-    );
-
-Some technical notes:
-
-    * The name of the table, ``myapp_person``, is automatically derived from
-      some model metadata but can be overridden. See `Table names`_ below.
-    * An ``id`` field is added automatically, but this behavior can be
-      overridden. See `Automatic primary key fields`_ below.
-    * The ``CREATE TABLE`` SQL in this example is formatted using PostgreSQL
-      syntax, but it's worth noting Django uses SQL tailored to the database
-      backend specified in your `settings file`_.
-
-.. _settings file: ../settings/
-
-Fields
-======
-
-The most important part of a model -- and the only required part of a model --
-is the list of database fields it defines. Fields are specified by class
-attributes.
-
-Example::
-
-    class Musician(models.Model):
-        first_name = models.CharField(max_length=50)
-        last_name = models.CharField(max_length=50)
-        instrument = models.CharField(max_length=100)
-
-    class Album(models.Model):
-        artist = models.ForeignKey(Musician)
-        name = models.CharField(max_length=100)
-        release_date = models.DateField()
-        num_stars = models.IntegerField()
-
-Field name restrictions
------------------------
-
-Django places only two restrictions on model field names:
-
-    1. A field name cannot be a Python reserved word, because that would result
-       in a Python syntax error. For example::
-
-           class Example(models.Model):
-               pass = models.IntegerField() # 'pass' is a reserved word!
-
-    2. A field name cannot contain more than one underscore in a row, due to
-       the way Django's query lookup syntax works. For example::
-
-           class Example(models.Model):
-               foo__bar = models.IntegerField() # 'foo__bar' has two underscores!
-
-These limitations can be worked around, though, because your field name doesn't
-necessarily have to match your database column name. See `db_column`_ below.
-
-SQL reserved words, such as ``join``, ``where`` or ``select``, *are* allowed as
-model field names, because Django escapes all database table names and column
-names in every underlying SQL query. It uses the quoting syntax of your
-particular database engine.
-
-Field types
------------
-
-Each field in your model should be an instance of the appropriate ``Field``
-class. Django uses the field class types to determine a few things:
-
-    * The database column type (e.g. ``INTEGER``, ``VARCHAR``).
-    * The widget to use in Django's admin interface, if you care to use it
-      (e.g. ``<input type="text">``, ``<select>``).
-    * The minimal validation requirements, used in Django's admin and in
-      automatically-generated forms.
-
-Here are all available field types:
-
-``AutoField``
-~~~~~~~~~~~~~
-
-An ``IntegerField`` that automatically increments according to available IDs.
-You usually won't need to use this directly; a primary key field will
-automatically be added to your model if you don't specify otherwise. See
-`Automatic primary key fields`_.
-
-``BooleanField``
-~~~~~~~~~~~~~~~~
-
-A true/false field.
-
-The admin represents this as a checkbox.
-
-``CharField``
-~~~~~~~~~~~~~
-
-A string field, for small- to large-sized strings.
-
-For large amounts of text, use ``TextField``.
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``CharField`` has an extra required argument, ``max_length``, the maximum length
-(in characters) of the field. The max_length is enforced at the database level
-and in Django's validation.
-
-``CommaSeparatedIntegerField``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A field of integers separated by commas. As in ``CharField``, the ``max_length``
-argument is required.
-
-``DateField``
-~~~~~~~~~~~~~
-
-A date field. Has a few extra optional arguments:
-
-    ======================  ===================================================
-    Argument                Description
-    ======================  ===================================================
-    ``auto_now``            Automatically set the field to now every time the
-                            object is saved. Useful for "last-modified"
-                            timestamps. Note that the current date is *always*
-                            used; it's not just a default value that you can
-                            override.
-
-    ``auto_now_add``        Automatically set the field to now when the object
-                            is first created. Useful for creation of
-                            timestamps. Note that the current date is *always*
-                            used; it's not just a default value that you can
-                            override.
-    ======================  ===================================================
-
-The admin represents this as an ``<input type="text">`` with a JavaScript
-calendar, and a shortcut for "Today."  The JavaScript calendar will always start
-the week on a Sunday.
-
-``DateTimeField``
-~~~~~~~~~~~~~~~~~
-
-A date and time field. Takes the same extra options as ``DateField``.
-
-The admin represents this as two ``<input type="text">`` fields, with
-JavaScript shortcuts.
-
-``DecimalField``
-~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-A fixed-precision decimal number, represented in Python by a ``Decimal`` instance.
-Has two **required** arguments:
-
-    ======================  ===================================================
-    Argument                Description
-    ======================  ===================================================
-    ``max_digits``          The maximum number of digits allowed in the number.
-
-    ``decimal_places``      The number of decimal places to store with the
-                            number.
-    ======================  ===================================================
-
-For example, to store numbers up to 999 with a resolution of 2 decimal places,
-you'd use::
-
-    models.DecimalField(..., max_digits=5, decimal_places=2)
-
-And to store numbers up to approximately one billion with a resolution of 10
-decimal places::
-
-    models.DecimalField(..., max_digits=19, decimal_places=10)
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``EmailField``
-~~~~~~~~~~~~~~
-
-A ``CharField`` that checks that the value is a valid e-mail address.
-
-In Django 0.96, this doesn't accept ``max_length``; its ``max_length`` is
-automatically set to 75. In the Django development version, ``max_length`` is
-set to 75 by default, but you can specify it to override default behavior.
-
-``FileField``
-~~~~~~~~~~~~~
-
-A file-upload field. Has two special arguments, of which the first is
-**required**:
-
-    ======================  ===================================================
-    Argument                Description
-    ======================  ===================================================
-    ``upload_to``           Required. A filesystem-style path that will be
-                            prepended to the filename before being committed to
-                            the final storage destination.
-
-                            **New in Django development version**
-
-                            This may also be a callable, such as a function,
-                            which will be called to obtain the upload path,
-                            including the filename. See below for details.
-
-    ``storage``             **New in Django development version**
-
-                            Optional. A storage object, which handles the
-                            storage and retrieval of your files. See `managing
-                            files`_ for details on how to provide this object.
-    ======================  ===================================================
-
-.. _managing files: ../files/
-
-The ``upload_to`` 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).
-
-**New in Django development version**
-
-If a callable is provided for the ``upload_to`` argument, that callable must be
-able to accept two arguments, and return a Unix-style path (with forward
-slashes) to be passed along to the storage system. The two arguments that will
-be passed are:
-
-    ======================  ===================================================
-    Argument                Description
-    ======================  ===================================================
-    ``instance``            An instance of the model where the ``FileField`` is
-                            defined. More specifically, this is the particular
-                            instance where the current file is being attached.
-
-                            **Note**: In most cases, this object will not have
-                            been saved to the database yet, so if it uses the
-                            default ``AutoField``, *it might not yet have a
-                            value for its primary key field*.
-
-    ``filename``            The filename that was originally given to the file.
-                            This may or may not be taken into account when
-                            determining the final destination path.
-    ======================  ===================================================
-
-The admin represents this field as an ``<input type="file">`` (a file-upload
-widget).
-
-Using a ``FileField`` or an ``ImageField`` (see below) in a model without a
-specified storage system takes a few steps:
-
-    1. In your settings file, you'll need to define ``MEDIA_ROOT`` as the
-       full path to a directory where you'd like Django to store uploaded
-       files. (For performance, these files are not stored in the database.)
-       Define ``MEDIA_URL`` as the base public URL of that directory. Make
-       sure that this directory is writable by the Web server's user
-       account.
-
-    2. Add the ``FileField`` or ``ImageField`` to your model, making sure
-       to define the ``upload_to`` option to tell Django to which
-       subdirectory of ``MEDIA_ROOT`` it should upload files.
-
-    3. All that will be stored in your database is a path to the file
-       (relative to ``MEDIA_ROOT``). You'll most likely want to use
-       ``object.<field>.url`` to get the actual URL. For example, if your
-       ``ImageField`` is called ``mug_shot``, you can get the absolute URL to
-       your image in a template with ``{{ object.mug_shot.url }}``.
-
-For example, say your ``MEDIA_ROOT`` is set to ``'/home/media'``, and
-``upload_to`` is set to ``'photos/%Y/%m/%d'``. The ``'%Y/%m/%d'`` part of
-``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``.
-
-Information about the uploaded ``File`` object, such as its on-disk filename,
-its size, or its URL, is available via attributes on the object itself. See the
-`managing files`__ documentation for more information about ``File`` objects.
-
-__ ../files/
-
-Note that whenever you deal with uploaded files, you should pay close attention
-to where you're uploading them and what type of files they are, to avoid
-security holes. *Validate all uploaded files* so that you're sure the files are
-what you think they are. For example, if you blindly let somebody upload files,
-without validation, to a directory that's within your Web server's document
-root, then somebody could upload a CGI or PHP script and execute that script by
-visiting its URL on your site. Don't allow that.
-
-.. _`strftime formatting`: http://docs.python.org/lib/module-time.html#l2h-1941
-
-**New in development version:**  By default, ``FileField`` instances are
-created as ``varchar(100)`` columns in your database. As with other fields, you
-can change the maximum length using the ``max_length`` argument.
-
-``FilePathField``
-~~~~~~~~~~~~~~~~~
-
-A field whose choices are limited to the filenames in a certain directory
-on the filesystem. Has three special arguments, of which the first is
-**required**:
-
-    ======================  ===================================================
-    Argument                Description
-    ======================  ===================================================
-    ``path``                Required. The absolute filesystem path to a
-                            directory from which this ``FilePathField`` should
-                            get its choices. Example: ``"/home/images"``.
-
-    ``match``               Optional. A regular expression, as a string, that
-                            ``FilePathField`` will use to filter filenames.
-                            Note that the regex will be applied to the
-                            base filename, not the full path. Example:
-                            ``"foo.*\.txt$"``, which will match a file called
-                            ``foo23.txt`` but not ``bar.txt`` or ``foo23.gif``.
-
-    ``recursive``           Optional. Either ``True`` or ``False``. Default is
-                            ``False``. Specifies whether all subdirectories of
-                            ``path`` should be included.
-    ======================  ===================================================
-
-Of course, these arguments can be used together.
-
-The one potential gotcha is that ``match`` applies to the base filename,
-not the full path. So, this example::
-
-    FilePathField(path="/home/images", match="foo.*", recursive=True)
-
-...will match ``/home/images/foo.gif`` but not ``/home/images/foo/bar.gif``
-because the ``match`` applies to the base filename (``foo.gif`` and
-``bar.gif``).
-
-**New in development version:**  By default, ``FilePathField`` instances are
-created as ``varchar(100)`` columns in your database. As with other fields, you
-can change the maximum length using the ``max_length`` argument.
-
-``FloatField``
-~~~~~~~~~~~~~~
-
-**Changed in Django development version**
-
-A floating-point number represented in Python by a ``float`` instance.
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-**NOTE:** The semantics of ``FloatField`` have changed in the Django
-development version. See the `Django 0.96 documentation`_ for the old behavior.
-
-.. _Django 0.96 documentation: http://www.djangoproject.com/documentation/0.96/model-api/#floatfield
-
-``ImageField``
-~~~~~~~~~~~~~~
-
-Like `FileField`_, but validates that the uploaded object is a valid
-image. Has two extra optional arguments, ``height_field`` and
-``width_field``, which, if set, will be auto-populated with the height and
-width of the image each time a model instance is saved.
-
-In addition to the `standard attributes and methods`_ that are available for
-``FileField``, an ``ImageField`` also has ``width`` and ``height`` attributes.
-
-Requires the `Python Imaging Library`_.
-
-**New in development version:**  By default, ``ImageField`` instances are
-created as ``varchar(100)`` columns in your database. As with other fields, you
-can change the maximum length using the ``max_length`` argument.
-
-.. _standard attributes and methods: ../files/#file-attributes-and-methods
-.. _Python Imaging Library: http://www.pythonware.com/products/pil/
-
-``IntegerField``
-~~~~~~~~~~~~~~~~
-
-An integer.
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``IPAddressField``
-~~~~~~~~~~~~~~~~~~
-
-An IP address, in string format (e.g. "192.0.2.30").
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``NullBooleanField``
-~~~~~~~~~~~~~~~~~~~~
-
-Like a ``BooleanField``, but allows ``NULL`` as one of the options.  Use this
-instead of a ``BooleanField`` with ``null=True``.
-
-The admin represents this as a ``<select>`` box with "Unknown", "Yes" and "No" choices.
-
-``PhoneNumberField``
-~~~~~~~~~~~~~~~~~~~~
-
-A ``CharField`` that checks that the value is a valid U.S.A.-style phone
-number (in the format ``XXX-XXX-XXXX``).
-
-``PositiveIntegerField``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Like an ``IntegerField``, but must be positive.
-
-``PositiveSmallIntegerField``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Like a ``PositiveIntegerField``, but only allows values under a certain
-(database-dependent) point.
-
-``SlugField``
-~~~~~~~~~~~~~
-
-"Slug" is a newspaper term. A slug is a short label for something,
-containing only letters, numbers, underscores or hyphens. They're generally
-used in URLs.
-
-Like a CharField, you can specify ``max_length``. If ``max_length`` is
-not specified, Django will use a default length of 50.
-
-Implies ``db_index=True``.
-
-``SmallIntegerField``
-~~~~~~~~~~~~~~~~~~~~~
-
-Like an ``IntegerField``, but only allows values under a certain
-(database-dependent) point.
-
-``TextField``
-~~~~~~~~~~~~~
-
-A large text field.
-
-The admin represents this as a ``<textarea>`` (a multi-line input).
-
-``TimeField``
-~~~~~~~~~~~~~
-
-A time. Accepts the same auto-population options as ``DateField`` and
-``DateTimeField``.
-
-The admin represents this as an ``<input type="text">`` with some
-JavaScript shortcuts.
-
-``URLField``
-~~~~~~~~~~~~
-
-A field for a URL. If the ``verify_exists`` option is ``True`` (default),
-the URL given will be checked for existence (i.e., the URL actually loads
-and doesn't give a 404 response).
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``URLField`` takes an optional argument, ``max_length``, the maximum length (in
-characters) of the field. The maximum length is enforced at the database level and
-in Django's validation. If you don't specify ``max_length``, a default of 200
-is used.
-
-``USStateField``
-~~~~~~~~~~~~~~~~
-
-A two-letter U.S. state abbreviation.
-
-The admin represents this as an ``<input type="text">`` (a single-line input).
-
-``XMLField``
-~~~~~~~~~~~~
-
-A ``TextField`` that checks that the value is valid XML that matches a
-given schema. Takes one required argument, ``schema_path``, which is the
-filesystem path to a RelaxNG_ schema against which to validate the field.
-
-.. _RelaxNG: http://www.relaxng.org/
-
-Field options
--------------
-
-The following arguments are available to all field types. All are optional.
-
-``null``
-~~~~~~~~
-
-If ``True``, Django will store empty values as ``NULL`` in the database.
-Default is ``False``.
-
-Note that empty string values will always get stored as empty strings, not
-as ``NULL``. Only use ``null=True`` for non-string fields such as integers,
-booleans and dates. For both types of fields, you will also need to set
-``blank=True`` if you wish to permit empty values in forms, as the ``null``
-parameter only affects database storage (see blank_, below).
-
-Avoid using ``null`` on string-based fields such as ``CharField`` and
-``TextField`` unless you have an excellent reason. If a string-based field
-has ``null=True``, that means it has two possible values for "no data":
-``NULL``, and the empty string. In most cases, it's redundant to have two
-possible values for "no data;" Django convention is to use the empty
-string, not ``NULL``.
-
-.. note::
-    When using the Oracle database backend, the ``null=True`` option will
-    be coerced for string-based fields that can blank, and the value
-    ``NULL`` will be stored to denote the empty string.
-
-``blank``
-~~~~~~~~~
-
-If ``True``, the field is allowed to be blank. Default is ``False``.
-
-Note that this is different than ``null``. ``null`` is purely
-database-related, whereas ``blank`` is validation-related. If a field has
-``blank=True``, validation on Django's admin site will allow entry of an
-empty value. If a field has ``blank=False``, the field will be required.
-
-``choices``
-~~~~~~~~~~~
-
-An iterable (e.g., a list or tuple) of 2-tuples to use as choices for this
-field.
-
-If this is given, Django's admin will use a select box instead of the
-standard text field and will limit choices to the choices given.
-
-A choices list looks like this::
-
-    YEAR_IN_SCHOOL_CHOICES = (
-        ('FR', 'Freshman'),
-        ('SO', 'Sophomore'),
-        ('JR', 'Junior'),
-        ('SR', 'Senior'),
-        ('GR', 'Graduate'),
-    )
-
-The first element in each tuple is the actual value to be stored. The
-second element is the human-readable name for the option.
-
-The choices list can be defined either as part of your model class::
-
-    class Foo(models.Model):
-        GENDER_CHOICES = (
-            ('M', 'Male'),
-            ('F', 'Female'),
-        )
-        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
-
-or outside your model class altogether::
-
-    GENDER_CHOICES = (
-        ('M', 'Male'),
-        ('F', 'Female'),
-    )
-    class Foo(models.Model):
-        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
-
-You can also collect your available choices into named groups that can
-be used for organizational purposes::
-
-    MEDIA_CHOICES = (
-        ('Audio', (
-                ('vinyl', 'Vinyl'),
-                ('cd', 'CD'),
-            )
-        ),
-        ('Video', (
-                ('vhs', 'VHS Tape'),
-                ('dvd', 'DVD'),
-            )
-        ),
-        ('unknown', 'Unknown'),
-    )
-
-The first element in each tuple is the name to apply to the group. The
-second element is an iterable of 2-tuples, with each 2-tuple containing
-a value and a human-readable name for an option. Grouped options may be
-combined with ungrouped options within a single list (such as the
-`unknown` option in this example).
-
-For each model field that has ``choices`` set, Django will add a method to
-retrieve the human-readable name for the field's current value. See
-`get_FOO_display`_ in the database API documentation.
-
-.. _get_FOO_display: ../db-api/#get-foo-display
-
-Finally, note that choices can be any iterable object -- not necessarily a
-list or tuple. This lets you construct choices dynamically. But if you find
-yourself hacking ``choices`` to be dynamic, you're probably better off using
-a proper database table with a ``ForeignKey``. ``choices`` is meant for static
-data that doesn't change much, if ever.
-
-``core``
-~~~~~~~~
-
-For objects that are edited inline to a related object.
-
-In the Django admin, if all "core" fields in an inline-edited object are
-cleared, the object will be deleted.
-
-It is an error to have an inline-editable relation without at least one
-``core=True`` field.
-
-Please note that each field marked "core" is treated as a required field by the
-Django admin site. Essentially, this means you should put ``core=True`` on all
-required fields in your related object that is being edited inline.
-
-``db_column``
-~~~~~~~~~~~~~
-
-The name of the database column to use for this field. If this isn't given,
-Django will use the field's name.
-
-If your database column name is an SQL reserved word, or contains
-characters that aren't allowed in Python variable names -- notably, the
-hyphen -- that's OK. Django quotes column and table names behind the
-scenes.
-
-``db_index``
-~~~~~~~~~~~~
-
-If ``True``, ``django-admin.py sqlindexes`` will output a ``CREATE INDEX``
-statement for this field.
-
-``db_tablespace``
-~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-The name of the database tablespace to use for this field's index, if
-this field is indexed. The default is the project's
-``DEFAULT_INDEX_TABLESPACE`` setting, if set, or the ``db_tablespace``
-of the model, if any. If the backend doesn't support tablespaces, this
-option is ignored.
-
-``default``
-~~~~~~~~~~~
-
-The default value for the field. This can be a value or a callable object. If
-callable it will be called every time a new object is created.
-
-``editable``
-~~~~~~~~~~~~
-
-If ``False``, the field will not be editable in the admin or via forms
-automatically generated from the model class. Default is ``True``.
-
-``help_text``
-~~~~~~~~~~~~~
-
-Extra "help" text to be displayed under the field on the object's admin
-form. It's useful for documentation even if your object doesn't have an
-admin form.
-
-Note that this value is *not* HTML-escaped when it's displayed in the admin
-interface. This lets you include HTML in ``help_text`` if you so desire. For
-example::
-
-    help_text="Please use the following format: <em>YYYY-MM-DD</em>."
-
-Alternatively you can use plain text and
-``django.utils.html.escape()`` to escape any HTML special characters.
-
-``primary_key``
-~~~~~~~~~~~~~~~
-
-If ``True``, this field is the primary key for the model.
-
-If you don't specify ``primary_key=True`` for any fields in your model,
-Django will automatically add this field::
-
-    id = models.AutoField('ID', primary_key=True)
-
-Thus, you don't need to set ``primary_key=True`` on any of your fields
-unless you want to override the default primary-key behavior.
-
-``primary_key=True`` implies ``null=False`` and ``unique=True``. Only
-one primary key is allowed on an object.
-
-``unique``
-~~~~~~~~~~
-
-If ``True``, this field must be unique throughout the table.
-
-This is enforced at the database level and at the Django admin-form level. If
-you try to save a model with a duplicate value in a ``unique`` field, a
-``django.db.IntegrityError`` will be raised by the model's ``save()`` method.
-
-``unique_for_date``
-~~~~~~~~~~~~~~~~~~~
-
-Set this to the name of a ``DateField`` or ``DateTimeField`` to require
-that this field be unique for the value of the date field.
-
-For example, if you have a field ``title`` that has
-``unique_for_date="pub_date"``, then Django wouldn't allow the entry of
-two records with the same ``title`` and ``pub_date``.
-
-This is enforced at the Django admin-form level but not at the database level.
-
-``unique_for_month``
-~~~~~~~~~~~~~~~~~~~~
-
-Like ``unique_for_date``, but requires the field to be unique with respect
-to the month.
-
-``unique_for_year``
-~~~~~~~~~~~~~~~~~~~
-
-Like ``unique_for_date`` and ``unique_for_month``.
-
-``validator_list``
-~~~~~~~~~~~~~~~~~~
-
-A list of extra validators to apply to the field. Each should be a callable
-that takes the parameters ``field_data, all_data`` and raises
-``django.core.validators.ValidationError`` for errors. (See the
-`validator docs`_.)
-
-Django comes with quite a few validators. They're in ``django.core.validators``.
-
-.. _validator docs: ../oldforms/#validators
-
-Verbose field names
--------------------
-
-Each field type, except for ``ForeignKey``, ``ManyToManyField`` and
-``OneToOneField``, takes an optional first positional argument -- a
-verbose name. If the verbose name isn't given, Django will automatically create
-it using the field's attribute name, converting underscores to spaces.
-
-In this example, the verbose name is ``"Person's first name"``::
-
-    first_name = models.CharField("Person's first name", max_length=30)
-
-In this example, the verbose name is ``"first name"``::
-
-    first_name = models.CharField(max_length=30)
-
-``ForeignKey``, ``ManyToManyField`` and ``OneToOneField`` require the first
-argument to be a model class, so use the ``verbose_name`` keyword argument::
-
-    poll = models.ForeignKey(Poll, verbose_name="the related poll")
-    sites = models.ManyToManyField(Site, verbose_name="list of sites")
-    place = models.OneToOneField(Place, verbose_name="related place")
-
-Convention is not to capitalize the first letter of the ``verbose_name``.
-Django will automatically capitalize the first letter where it needs to.
-
-Relationships
--------------
-
-Clearly, the power of relational databases lies in relating tables to each
-other. Django offers ways to define the three most common types of database
-relationships: Many-to-one, many-to-many and one-to-one.
-
-Many-to-one relationships
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To define a many-to-one relationship, use ``ForeignKey``. You use it just like
-any other ``Field`` type: by including it as a class attribute of your model.
-
-``ForeignKey`` requires a positional argument: the class to which the model is
-related.
-
-For example, if a ``Car`` model has a ``Manufacturer`` -- that is, a
-``Manufacturer`` makes multiple cars but each ``Car`` only has one
-``Manufacturer`` -- use the following definitions::
-
-    class Manufacturer(models.Model):
-        # ...
-
-    class Car(models.Model):
-        manufacturer = models.ForeignKey(Manufacturer)
-        # ...
-
-To create a recursive relationship -- an object that has a many-to-one
-relationship with itself -- use ``models.ForeignKey('self')``.
-
-If you need to create a relationship on a model that has not yet been defined,
-you can use the name of the model, rather than the model object itself::
-
-    class Car(models.Model):
-        manufacturer = models.ForeignKey('Manufacturer')
-        # ...
-
-    class Manufacturer(models.Model):
-        # ...
-
-Note, however, that this only refers to models in the same models.py file -- you
-cannot use a string to reference a model defined in another application or
-imported from elsewhere.
-
-**New in Django development version:** To refer to models defined in another
-application, you must instead explicitly specify the application label. For
-example, if the ``Manufacturer`` model above is defined in another application
-called ``production``, you'd need to use::
-
-    class Car(models.Model):
-        manufacturer = models.ForeignKey('production.Manufacturer')
-
-Behind the scenes, Django appends ``"_id"`` to the field name to create its
-database column name. In the above example, the database table for the ``Car``
-model will have a ``manufacturer_id`` column. (You can change this explicitly
-by specifying ``db_column``; see ``db_column`` below.)  However, your code
-should never have to deal with the database column name, unless you write
-custom SQL. You'll always deal with the field names of your model object.
-
-It's suggested, but not required, that the name of a ``ForeignKey`` field
-(``manufacturer`` in the example above) be the name of the model, lowercase.
-You can, of course, call the field whatever you want. For example::
-
-    class Car(models.Model):
-        company_that_makes_it = models.ForeignKey(Manufacturer)
-        # ...
-
-See the `Many-to-one relationship model example`_ for a full example.
-
-.. _Many-to-one relationship model example: ../models/many_to_one/
-
-``ForeignKey`` fields take a number of extra arguments for defining how the
-relationship should work. All are optional:
-
-    =======================  ============================================================
-    Argument                 Description
-    =======================  ============================================================
-    ``limit_choices_to``     A dictionary of lookup arguments and values (see
-                             the `Database API reference`_) that limit the
-                             available admin choices for this object. Use this
-                             with functions from the Python ``datetime`` module
-                             to limit choices of objects by date. For example::
-
-                                limit_choices_to = {'pub_date__lte': datetime.now}
-
-                             only allows the choice of related objects with a
-                             ``pub_date`` before the current date/time to be
-                             chosen.
-
-                             Instead of a dictionary this can also be a ``Q`` object
-                             (an object with a ``get_sql()`` method) for more complex
-                             queries.
-
-                             ``limit_choices_to`` has no effect on the inline FormSets
-                             that are created to display related objects in the admin.
-
-    ``related_name``         The name to use for the relation from the related
-                             object back to this one. See the
-                             `related objects documentation`_ for a full
-                             explanation and example.
-
-                             If using this in an `abstract base class`_, be
-                             sure to read the `extra notes`_ in that section
-                             about ``related_name``.
-
-    ``to_field``             The field on the related object that the relation
-                             is to. By default, Django uses the primary key of
-                             the related object.
-    =======================  ============================================================
-
-.. _`Database API reference`: ../db-api/
-.. _related objects documentation: ../db-api/#related-objects
-.. _abstract base class: `Abstract base classes`_
-.. _extra notes: `Be careful with related_name`_
-
-Many-to-many relationships
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To define a many-to-many relationship, use ``ManyToManyField``. You use it just
-like any other ``Field`` type: by including it as a class attribute of your
-model.
-
-``ManyToManyField`` requires a positional argument: the class to which the
-model is related.
-
-For example, if a ``Pizza`` has multiple ``Topping`` objects -- that is, a
-``Topping`` can be on multiple pizzas and each ``Pizza`` has multiple toppings --
-here's how you'd represent that::
-
-    class Topping(models.Model):
-        # ...
-
-    class Pizza(models.Model):
-        # ...
-        toppings = models.ManyToManyField(Topping)
-
-As with ``ForeignKey``, a relationship to self can be defined by using the
-string ``'self'`` instead of the model name, and you can refer to as-yet
-undefined models by using a string containing the model name. However, you
-can only use strings to refer to models in the same models.py file -- you
-cannot use a string to reference a model in a different application, or to
-reference a model that has been imported from elsewhere.
-
-It's suggested, but not required, that the name of a ``ManyToManyField``
-(``toppings`` in the example above) be a plural describing the set of related
-model objects.
-
-Behind the scenes, Django creates an intermediary join table to represent the
-many-to-many relationship.
-
-It doesn't matter which model gets the ``ManyToManyField``, but you only need
-it in one of the models -- not in both.
-
-Generally, ``ManyToManyField`` instances should go in the object that's going
-to be edited in the admin interface, if you're using Django's admin. In the
-above example, ``toppings`` is in ``Pizza`` (rather than ``Topping`` having a
-``pizzas`` ``ManyToManyField`` ) because it's more natural to think about a
-``Pizza`` having toppings than a topping being on multiple pizzas. The way it's
-set up above, the ``Pizza`` admin form would let users select the toppings.
-
-See the `Many-to-many relationship model example`_ for a full example.
-
-.. _Many-to-many relationship model example: ../models/many_to_many/
-
-``ManyToManyField`` objects take a number of extra arguments for defining how
-the relationship should work. All are optional:
-
-    =======================  ============================================================
-    Argument                 Description
-    =======================  ============================================================
-    ``related_name``         See the description under ``ForeignKey`` above.
-
-    ``limit_choices_to``     See the description under ``ForeignKey`` above.
-    
-                             ``limit_choices_to`` has no effect when used on a
-                             ``ManyToManyField`` with an intermediate table.
-
-    ``symmetrical``          Only used in the definition of ManyToManyFields on self.
-                             Consider the following model::
-
-                                 class Person(models.Model):
-                                     friends = models.ManyToManyField("self")
-
-                             When Django processes this model, it identifies that it has
-                             a ``ManyToManyField`` on itself, and as a result, it
-                             doesn't add a ``person_set`` attribute to the ``Person``
-                             class. Instead, the ``ManyToManyField`` is assumed to be
-                             symmetrical -- that is, if I am your friend, then you are
-                             my friend.
-
-                             If you do not want symmetry in ``ManyToMany`` relationships
-                             with ``self``, set ``symmetrical`` to ``False``. This will
-                             force Django to add the descriptor for the reverse
-                             relationship, allowing ``ManyToMany`` relationships to be
-                             non-symmetrical.
-
-    ``db_table``             The name of the table to create for storing the many-to-many
-                             data. If this is not provided, Django will assume a default
-                             name based upon the names of the two tables being joined.
-
-    =======================  ============================================================
-
-Extra fields on many-to-many relationships
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**New in Django development version**
-
-When you're only dealing with simple many-to-many relationships such as
-mixing and matching pizzas and toppings, a standard ``ManyToManyField``
-is all you need. However, sometimes you may need to associate data with the
-relationship between two models.
-
-For example, consider the case of an application tracking the musical groups
-which musicians belong to. There is a many-to-many relationship between a person
-and the groups of which they are a member, so you could use a ManyToManyField
-to represent this relationship. However, there is a lot of detail about the
-membership that you might want to collect, such as the date at which the person
-joined the group.
-
-For these situations, Django allows you to specify the model that will be used
-to govern the many-to-many relationship. You can then put extra fields on the
-intermediate model. The intermediate model is associated with the
-``ManyToManyField`` using the ``through`` argument to point to the model
-that will act as an intermediary. For our musician example, the code would look
-something like this::
-
-    class Person(models.Model):
-        name = models.CharField(max_length=128)
-
-        def __unicode__(self):
-            return self.name
-
-    class Group(models.Model):
-        name = models.CharField(max_length=128)
-        members = models.ManyToManyField(Person, through='Membership')
-
-        def __unicode__(self):
-            return self.name
-
-    class Membership(models.Model):
-        person = models.ForeignKey(Person)
-        group = models.ForeignKey(Group)
-        date_joined = models.DateField()
-        invite_reason = models.CharField(max_length=64)
-
-When you set up the intermediary model, you explicitly specify foreign
-keys to the models that are involved in the ManyToMany relation. This
-explicit declaration defines how the two models are related.
-
-There are a few restrictions on the intermediate model:
-
-    * Your intermediate model must contain one - and *only* one - foreign key
-      on the target model (this would be ``Person`` in our example). If you
-      have more than one foreign key, a validation error will be raised.
-
-    * Your intermediate model must contain one - and *only* one - foreign key
-      on the source model (this would be ``Group`` in our example). If you
-      have more than one foreign key, a validation error will be raised.
-
-    * The only exception to this is a model which has a many-to-many
-      relationship to itself, through an intermediary model. In this
-      case, two foreign keys to the same model are permitted, but they
-      will be treated as the two (different) sides of the many-to-many
-      relation.
-
-    * When defining a many-to-many relationship from a model to
-      itself, using an intermediary model, you *must* use
-      ``symmetrical=False`` (see the documentation for
-      ``ManyToManyField`` above).
-
-Now that you have set up your ``ManyToManyField`` to use your intermediary
-model (Membership, in this case), you're ready to start creating some
-many-to-many relationships. You do this by creating instances of the
-intermediate model::
-
-    >>> ringo = Person.objects.create(name="Ringo Starr")
-    >>> paul = Person.objects.create(name="Paul McCartney")
-    >>> beatles = Group.objects.create(name="The Beatles")
-    >>> m1 = Membership(person=ringo, group=beatles,
-    ...     date_joined=date(1962, 8, 16),
-    ...     invite_reason= "Needed a new drummer.")
-    >>> m1.save()
-    >>> beatles.members.all()
-    [<Person: Ringo Starr>]
-    >>> ringo.group_set.all()
-    [<Group: The Beatles>]
-    >>> m2 = Membership.objects.create(person=paul, group=beatles,
-    ...     date_joined=date(1960, 8, 1),
-    ...     invite_reason= "Wanted to form a band.")
-    >>> beatles.members.all()
-    [<Person: Ringo Starr>, <Person: Paul McCartney>]
-
-Unlike normal many-to-many fields, you *can't* use ``add``, ``create``,
-or assignment (i.e., ``beatles.members = [...]``) to create relationships::
-
-    # THIS WILL NOT WORK
-    >>> beatles.members.add(john)
-    # NEITHER WILL THIS
-    >>> beatles.members.create(name="George Harrison")
-    # AND NEITHER WILL THIS
-    >>> beatles.members = [john, paul, ringo, george]
-
-Why? You can't just create a relationship between a Person and a Group - you
-need to specify all the detail for the relationship required by the
-Membership table. The simple ``add``, ``create`` and assignment calls
-don't provide a way to specify this extra detail. As a result, they are
-disabled for many-to-many relationships that use an intermediate model.
-The only way to create a many-to-many relationship with an intermediate table
-is to create instances of the intermediate model.
-
-The ``remove`` method is disabled for similar reasons. However, the
-``clear()`` method can be used to remove all many-to-many relationships
-for an instance::
-
-    # Beatles have broken up
-    >>> beatles.members.clear()
-
-Once you have established the many-to-many relationships by creating instances
-of your intermediate model, you can issue queries. Just as with normal
-many-to-many relationships, you can query using the attributes of the
-many-to-many-related model::
-
-    # Find all the groups with a member whose name starts with 'Paul'
-    >>> Groups.objects.filter(person__name__startswith='Paul')
-    [<Group: The Beatles>]
-
-As you are using an intermediate table, you can also query on the attributes
-of the intermediate model::
-
-    # Find all the members of the Beatles that joined after 1 Jan 1961
-    >>> Person.objects.filter(
-    ...     group__name='The Beatles',
-    ...     membership__date_joined__gt=date(1961,1,1))
-    [<Person: Ringo Starr]
-
-One-to-one relationships
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-To define a one-to-one relationship, use ``OneToOneField``. You use it just
-like any other ``Field`` type: by including it as a class attribute of your
-model.
-
-This is most useful on the primary key of an object when that object "extends"
-another object in some way.
-
-``OneToOneField`` requires a positional argument: the class to which the
-model is related.
-
-For example, if you're building a database of "places", you would build pretty
-standard stuff such as address, phone number, etc. in the database. Then, if you
-wanted to build a database of restaurants on top of the places, instead of
-repeating yourself and replicating those fields in the ``Restaurant`` model, you
-could make ``Restaurant`` have a ``OneToOneField`` to ``Place`` (because a
-restaurant "is-a" place).
-
-As with ``ForeignKey``, a relationship to self can be defined by using the
-string ``"self"`` instead of the model name; references to as-yet undefined
-models can be made by using a string containing the model name.
-
-Finally, ``OneToOneField`` takes the following extra option:
-
-    =======================  ============================================================
-    Argument                 Description
-    =======================  ============================================================
-    ``parent_link``          When ``True`` and used in a model inherited from
-                             another model, indicates that this field should
-                             be used as the link from the child back to the
-                             parent. See `Model inheritance`_ for more
-                             details.
-
-                             **New in Django development version**
-
-    =======================  ============================================================
-
-**New in Django development version:** ``OneToOneField`` classes used to
-automatically become the primary key on a model. This is no longer true,
-although you can manually pass in the ``primary_key`` attribute if you like.
-Thus, it's now possible to have multiple fields of type ``OneToOneField`` on a
-single model.
-
-See the `One-to-one relationship model example`_ for a full example.
-
-.. _One-to-one relationship model example: ../models/one_to_one/
-
-Custom field types
-------------------
-
-**New in Django development version**
-
-If one of the existing model fields cannot be used to fit your purposes, or if
-you wish to take advantage of some less common database column types, you can
-create your own field class. Full coverage of creating your own fields is
-provided in the `Custom Model Fields`_ documentation.
-
-.. _Custom Model Fields: ../custom_model_fields/
-
-Meta options
-============
-
-Give your model metadata by using an inner ``class Meta``, like so::
-
-    class Foo(models.Model):
-        bar = models.CharField(max_length=30)
-
-        class Meta:
-            # ...
-
-Model metadata is "anything that's not a field", such as ordering options, etc.
-
-Here's a list of all possible ``Meta`` options. No options are required. Adding
-``class Meta`` to a model is completely optional.
-
-``abstract``
-------------
-
-**New in Django development version**
-
-When set to ``True``, denotes this model as an abstract base class. See
-`Abstract base classes`_ for more details. Defaults to ``False``.
-
-``db_table``
-------------
-
-The name of the database table to use for the model::
-
-    db_table = 'music_album'
-
-If this isn't given, Django will use ``app_label + '_' + model_class_name``.
-See "Table names" below for more.
-
-If your database table name is an SQL reserved word, or contains characters
-that aren't allowed in Python variable names -- notably, the hyphen --
-that's OK. Django quotes column and table names behind the scenes.
-
-``db_tablespace``
------------------
-
-**New in Django development version**
-
-The name of the database tablespace to use for the model. If the backend
-doesn't support tablespaces, this option is ignored.
-
-``get_latest_by``
------------------
-
-The name of a ``DateField`` or ``DateTimeField`` in the model. This specifies
-the default field to use in your model ``Manager``'s ``latest()`` method.
-
-Example::
-
-    get_latest_by = "order_date"
-
-See the `docs for latest()`_ for more.
-
-.. _docs for latest(): ../db-api/#latest-field-name-none
-
-``order_with_respect_to``
--------------------------
-
-Marks this object as "orderable" with respect to the given field. This is
-almost always used with related objects to allow them to be ordered with
-respect to a parent object. For example, if an ``Answer`` relates to a
-``Question`` object, and a question has more than one answer, and the order
-of answers matters, you'd do this::
-
-    class Answer(models.Model):
-        question = models.ForeignKey(Question)
-        # ...
-
-        class Meta:
-            order_with_respect_to = 'question'
-
-``ordering``
-------------
-
-The default ordering for the object, for use when obtaining lists of objects::
-
-    ordering = ['-order_date']
-
-This is a tuple or list of strings. Each string is a field name with an
-optional "-" prefix, which indicates descending order. Fields without a
-leading "-" will be ordered ascending. Use the string "?" to order randomly.
-
-For example, to order by a ``pub_date`` field ascending, use this::
-
-    ordering = ['pub_date']
-
-To order by ``pub_date`` descending, use this::
-
-    ordering = ['-pub_date']
-
-To order by ``pub_date`` descending, then by ``author`` ascending, use this::
-
-    ordering = ['-pub_date', 'author']
-
-See `Specifying ordering`_ for more examples.
-
-Note that, regardless of how many fields are in ``ordering``, the admin
-site uses only the first field.
-
-.. _Specifying ordering: ../models/ordering/
-
-``permissions``
----------------
-
-Extra permissions to enter into the permissions table when creating this
-object. Add, delete and change permissions are automatically created for
-each object that has ``admin`` set. This example specifies an extra
-permission, ``can_deliver_pizzas``::
-
-    permissions = (("can_deliver_pizzas", "Can deliver pizzas"),)
-
-This is a list or tuple of 2-tuples in the format
-``(permission_code, human_readable_permission_name)``.
-
-``unique_together``
--------------------
-
-Sets of field names that, taken together, must be unique::
-
-    unique_together = (("driver", "restaurant"),)
-
-This is a list of lists of fields that must be unique when considered
-together. It's used in the Django admin and is enforced at the database
-level (i.e., the appropriate ``UNIQUE`` statements are included in the
-``CREATE TABLE`` statement).
-
-All the fields specified in ``unique_together`` must be part of the current
-model. If you are using `model inheritance`_, you cannot refer to fields from
-any parent classes in ``unique_together``.
-
-**New in Django development version**
-
-For convenience, unique_together can be a single list when dealing
-with a single set of fields::
-
-    unique_together = ("driver", "restaurant")
-
-``verbose_name``
-----------------
-
-A human-readable name for the object, singular::
-
-    verbose_name = "pizza"
-
-If this isn't given, Django will use a munged version of the class name:
-``CamelCase`` becomes ``camel case``.
-
-``verbose_name_plural``
------------------------
-
-The plural name for the object::
-
-    verbose_name_plural = "stories"
-
-If this isn't given, Django will use ``verbose_name + "s"``.
-
-Table names
-===========
-
-To save you time, Django automatically derives the name of the database table
-from the name of your model class and the app that contains it. A model's
-database table name is constructed by joining the model's "app label" -- the
-name you used in ``manage.py startapp`` -- to the model's class name, with an
-underscore between them.
-
-For example, if you have an app ``bookstore`` (as created by
-``manage.py startapp bookstore``), a model defined as ``class Book`` will have
-a database table named ``bookstore_book``.
-
-To override the database table name, use the ``db_table`` parameter in
-``class Meta``.
-
-Automatic primary key fields
-============================
-
-By default, Django gives each model the following field::
-
-    id = models.AutoField(primary_key=True)
-
-This is an auto-incrementing primary key.
-
-If you'd like to specify a custom primary key, just specify ``primary_key=True``
-on one of your fields. If Django sees you've explicitly set ``primary_key``, it
-won't add the automatic ``id`` column.
-
-Each model requires exactly one field to have ``primary_key=True``.
-
-The ``pk`` property
--------------------
-**New in Django development version**
-
-Regardless of whether you define a primary key field yourself, or let Django
-supply one for you, each model will have a property called ``pk``. It behaves
-like a normal attribute on the model, but is actually an alias for whichever
-attribute is the primary key field for the model. You can read and set this
-value, just as you would for any other attribute, and it will update the
-correct field in the model.
-
-Managers
-========
-
-A ``Manager`` is the interface through which database query operations are
-provided to Django models. At least one ``Manager`` exists for every model in
-a Django application.
-
-The way ``Manager`` classes work is documented in the `Retrieving objects`_
-section of the database API docs, but this section specifically touches on
-model options that customize ``Manager`` behavior.
-
-.. _Retrieving objects: ../db-api/#retrieving-objects
-
-Manager names
--------------
-
-By default, Django adds a ``Manager`` with the name ``objects`` to every Django
-model class. However, if you want to use ``objects`` as a field name, or if you
-want to use a name other than ``objects`` for the ``Manager``, you can rename
-it on a per-model basis. To rename the ``Manager`` for a given class, define a
-class attribute of type ``models.Manager()`` on that model. For example::
-
-    from django.db import models
-
-    class Person(models.Model):
-        #...
-        people = models.Manager()
-
-Using this example model, ``Person.objects`` will generate an
-``AttributeError`` exception, but ``Person.people.all()`` will provide a list
-of all ``Person`` objects.
-
-Custom Managers
----------------
-
-You can use a custom ``Manager`` in a particular model by extending the base
-``Manager`` class and instantiating your custom ``Manager`` in your model.
-
-There are two reasons you might want to customize a ``Manager``: to add extra
-``Manager`` methods, and/or to modify the initial ``QuerySet`` the ``Manager``
-returns.
-
-Adding extra Manager methods
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Adding extra ``Manager`` methods is the preferred way to add "table-level"
-functionality to your models. (For "row-level" functionality -- i.e., functions
-that act on a single instance of a model object -- use `Model methods`_, not
-custom ``Manager`` methods.)
-
-A custom ``Manager`` method can return anything you want. It doesn't have to
-return a ``QuerySet``.
-
-For example, this custom ``Manager`` offers a method ``with_counts()``, which
-returns a list of all ``OpinionPoll`` objects, each with an extra
-``num_responses`` attribute that is the result of an aggregate query::
-
-    class PollManager(models.Manager):
-        def with_counts(self):
-            from django.db import connection
-            cursor = connection.cursor()
-            cursor.execute("""
-                SELECT p.id, p.question, p.poll_date, COUNT(*)
-                FROM polls_opinionpoll p, polls_response r
-                WHERE p.id = r.poll_id
-                GROUP BY 1, 2, 3
-                ORDER BY 3 DESC""")
-            result_list = []
-            for row in cursor.fetchall():
-                p = self.model(id=row[0], question=row[1], poll_date=row[2])
-                p.num_responses = row[3]
-                result_list.append(p)
-            return result_list
-
-    class OpinionPoll(models.Model):
-        question = models.CharField(max_length=200)
-        poll_date = models.DateField()
-        objects = PollManager()
-
-    class Response(models.Model):
-        poll = models.ForeignKey(Poll)
-        person_name = models.CharField(max_length=50)
-        response = models.TextField()
-
-With this example, you'd use ``OpinionPoll.objects.with_counts()`` to return
-that list of ``OpinionPoll`` objects with ``num_responses`` attributes.
-
-Another thing to note about this example is that ``Manager`` methods can
-access ``self.model`` to get the model class to which they're attached.
-
-Modifying initial Manager QuerySets
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A ``Manager``'s base ``QuerySet`` returns all objects in the system. For
-example, using this model::
-
-    class Book(models.Model):
-        title = models.CharField(max_length=100)
-        author = models.CharField(max_length=50)
-
-...the statement ``Book.objects.all()`` will return all books in the database.
-
-You can override a ``Manager``\'s base ``QuerySet`` by overriding the
-``Manager.get_query_set()`` method. ``get_query_set()`` should return a
-``QuerySet`` with the properties you require.
-
-For example, the following model has *two* ``Manager``\s -- one that returns
-all objects, and one that returns only the books by Roald Dahl::
-
-    # First, define the Manager subclass.
-    class DahlBookManager(models.Manager):
-        def get_query_set(self):
-            return super(DahlBookManager, self).get_query_set().filter(author='Roald Dahl')
-
-    # Then hook it into the Book model explicitly.
-    class Book(models.Model):
-        title = models.CharField(max_length=100)
-        author = models.CharField(max_length=50)
-
-        objects = models.Manager() # The default manager.
-        dahl_objects = DahlBookManager() # The Dahl-specific manager.
-
-With this sample model, ``Book.objects.all()`` will return all books in the
-database, but ``Book.dahl_objects.all()`` will only return the ones written by
-Roald Dahl.
-
-Of course, because ``get_query_set()`` returns a ``QuerySet`` object, you can
-use ``filter()``, ``exclude()`` and all the other ``QuerySet`` methods on it.
-So these statements are all legal::
-
-    Book.dahl_objects.all()
-    Book.dahl_objects.filter(title='Matilda')
-    Book.dahl_objects.count()
-
-This example also pointed out another interesting technique: using multiple
-managers on the same model. You can attach as many ``Manager()`` instances to
-a model as you'd like. This is an easy way to define common "filters" for your
-models.
-
-For example::
-
-    class MaleManager(models.Manager):
-        def get_query_set(self):
-            return super(MaleManager, self).get_query_set().filter(sex='M')
-
-    class FemaleManager(models.Manager):
-        def get_query_set(self):
-            return super(FemaleManager, self).get_query_set().filter(sex='F')
-
-    class Person(models.Model):
-        first_name = models.CharField(max_length=50)
-        last_name = models.CharField(max_length=50)
-        sex = models.CharField(max_length=1, choices=(('M', 'Male'), ('F', 'Female')))
-        people = models.Manager()
-        men = MaleManager()
-        women = FemaleManager()
-
-This example allows you to request ``Person.men.all()``, ``Person.women.all()``,
-and ``Person.people.all()``, yielding predictable results.
-
-If you use custom ``Manager`` objects, take note that the first
-``Manager`` Django encounters (in the order in which they're defined
-in the model) has a special status. Django interprets this first
-``Manager`` defined in a class as the "default" ``Manager``, and
-several parts of Django (though not the admin application) will use
-that ``Manager`` exclusively for that model. As a result, it's often a
-good idea to be careful in your choice of default manager, in order to
-avoid a situation where overriding of ``get_query_set()`` results in
-an inability to retrieve objects you'd like to work with.
-
-Using managers for related object access
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-By default, Django uses a "bare" (i.e. default) manager when accessing related
-objects (i.e. ``choice.poll``). If this default isn't appropriate for your
-default manager, you can force Django to use a custom manager for related object
-attributes by giving it a ``use_for_related_fields`` property::
-
-    class MyManager(models.Manager)::
-        use_for_related_fields = True
-
-        ...
-
-Model methods
-=============
-
-Define custom methods on a model to add custom "row-level" functionality to
-your objects. Whereas ``Manager`` methods are intended to do "table-wide"
-things, model methods should act on a particular model instance.
-
-This is a valuable technique for keeping business logic in one place -- the
-model.
-
-For example, this model has a few custom methods::
-
-    class Person(models.Model):
-        first_name = models.CharField(max_length=50)
-        last_name = models.CharField(max_length=50)
-        birth_date = models.DateField()
-        address = models.CharField(max_length=100)
-        city = models.CharField(max_length=50)
-        state = models.USStateField() # Yes, this is America-centric...
-
-        def baby_boomer_status(self):
-            "Returns the person's baby-boomer status."
-            import datetime
-            if datetime.date(1945, 8, 1) <= self.birth_date <= datetime.date(1964, 12, 31):
-                return "Baby boomer"
-            if self.birth_date < datetime.date(1945, 8, 1):
-                return "Pre-boomer"
-            return "Post-boomer"
-
-        def is_midwestern(self):
-            "Returns True if this person is from the Midwest."
-            return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO')
-
-        def _get_full_name(self):
-            "Returns the person's full name."
-            return '%s %s' % (self.first_name, self.last_name)
-        full_name = property(_get_full_name)
-
-The last method in this example is a *property*. `Read more about properties`_.
-
-.. _Read more about properties: http://www.python.org/download/releases/2.2/descrintro/#property
-
-A few object methods have special meaning:
-
-``__str__``
------------
-
-``__str__()`` is a Python "magic method" that defines what should be returned
-if you call ``str()`` on the object. Django uses ``str(obj)`` (or the related
-function, ``unicode(obj)`` -- see below) in a number of places, most notably
-as the value displayed to render an object in the Django admin site and as the
-value inserted into a template when it displays an object. Thus, you should
-always return a nice, human-readable string for the object's ``__str__``.
-Although this isn't required, it's strongly encouraged (see the description of
-``__unicode__``, below, before putting ``__str__`` methods everywhere).
-
-For example::
-
-    class Person(models.Model):
-        first_name = models.CharField(max_length=50)
-        last_name = models.CharField(max_length=50)
-
-        def __str__(self):
-            # Note use of django.utils.encoding.smart_str() here because
-            # first_name and last_name will be unicode strings.
-            return smart_str('%s %s' % (self.first_name, self.last_name))
-
-``__unicode__``
----------------
-
-The ``__unicode__()`` method is called whenever you call ``unicode()`` on an
-object. Since Django's database backends will return Unicode strings in your
-model's attributes, you would normally want to write a ``__unicode__()``
-method for your model. The example in the previous section could be written
-more simply as::
-
-    class Person(models.Model):
-        first_name = models.CharField(max_length=50)
-        last_name = models.CharField(max_length=50)
-
-        def __unicode__(self):
-            return u'%s %s' % (self.first_name, self.last_name)
-
-If you define a ``__unicode__()`` method on your model and not a ``__str__()``
-method, Django will automatically provide you with a ``__str__()`` that calls
-``__unicode__()`` and then converts the result correctly to a UTF-8 encoded
-string object. This is recommended development practice: define only
-``__unicode__()`` and let Django take care of the conversion to string objects
-when required.
-
-``get_absolute_url``
---------------------
-
-Define a ``get_absolute_url()`` method to tell Django how to calculate the
-URL for an object. For example::
-
-    def get_absolute_url(self):
-        return "/people/%i/" % self.id
-
-Django uses this in its admin interface. If an object defines
-``get_absolute_url()``, the object-editing page will have a "View on site"
-link that will jump you directly to the object's public view, according to
-``get_absolute_url()``.
-
-Also, a couple of other bits of Django, such as the `syndication feed framework`_,
-use ``get_absolute_url()`` as a convenience to reward people who've defined the
-method.
-
-.. _syndication feed framework: ../syndication_feeds/
-
-It's good practice to use ``get_absolute_url()`` in templates, instead of
-hard-coding your objects' URLs. For example, this template code is bad::
-
-    <a href="/people/{{ object.id }}/">{{ object.name }}</a>
-
-But this template code is good::
-
-    <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
-
-.. note::
-    The string you return from ``get_absolute_url()`` must contain only ASCII
-    characters (required by the URI spec, `RFC 2396`_) that have been
-    URL-encoded, if necessary. Code and templates using ``get_absolute_url()``
-    should be able to use the result directly without needing to do any
-    further processing. You may wish to use the
-    ``django.utils.encoding.iri_to_uri()`` function to help with this if you
-    are using unicode strings a lot.
-
-.. _RFC 2396: http://www.ietf.org/rfc/rfc2396.txt
-
-The ``permalink`` decorator
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The problem with the way we wrote ``get_absolute_url()`` above is that it
-slightly violates the DRY principle: the URL for this object is defined both
-in the URLConf file and in the model.
-
-You can further decouple your models from the URLconf using the ``permalink``
-decorator. This decorator is passed the view function, a list of positional
-parameters and (optionally) a dictionary of named parameters. Django then
-works out the correct full URL path using the URLconf, substituting the
-parameters you have given into the URL. For example, if your URLconf
-contained a line such as::
-
-    (r'^people/(\d+)/$', 'people.views.details'),
-
-...your model could have a ``get_absolute_url`` method that looked like this::
-
-    from django.db.models import permalink
-
-    def get_absolute_url(self):
-        return ('people.views.details', [str(self.id)])
-    get_absolute_url = permalink(get_absolute_url)
-
-Similarly, if you had a URLconf entry that looked like::
-
-    (r'/archive/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', archive_view)
-
-...you could reference this using ``permalink()`` as follows::
-
-    def get_absolute_url(self):
-        return ('archive_view', (), {
-            'year': self.created.year,
-            'month': self.created.month,
-            'day': self.created.day})
-    get_absolute_url = permalink(get_absolute_url)
-
-Notice that we specify an empty sequence for the second parameter in this case,
-because we only want to pass keyword parameters, not positional ones.
-
-In this way, you're tying the model's absolute URL to the view that is used
-to display it, without repeating the URL information anywhere. You can still
-use the ``get_absolute_url`` method in templates, as before.
-
-In some cases, such as the use of generic views or the re-use of
-custom views for multiple models, specifying the view function may
-confuse the reverse URL matcher (because multiple patterns point to
-the same view).
-
-For that problem, Django has **named URL patterns**. Using a named
-URL 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 *
-
-    url(r'^people/(\d+)/$',
-        'django.views.generic.list_detail.object_detail',
-        name='people_view'),
-
-...and then using that name to perform the reverse URL resolution instead
-of the view name::
-
-    from django.db.models import permalink
-
-    def get_absolute_url(self):
-        return ('people_view', [str(self.id)])
-    get_absolute_url = permalink(get_absolute_url)
-
-More details on named URL patterns are in the `URL dispatch documentation`_.
-
-.. _URL dispatch documentation: ../url_dispatch/#naming-url-patterns
-
-Executing custom SQL
---------------------
-
-Feel free to write custom SQL statements in custom model methods and
-module-level methods. The object ``django.db.connection`` represents the
-current database connection. To use it, call ``connection.cursor()`` to get a
-cursor object. Then, call ``cursor.execute(sql, [params])`` to execute the SQL
-and ``cursor.fetchone()`` or ``cursor.fetchall()`` to return the resulting
-rows. Example::
-
-    def my_custom_sql(self):
-        from django.db import connection
-        cursor = connection.cursor()
-        cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
-        row = cursor.fetchone()
-        return row
-
-``connection`` and ``cursor`` mostly implement the standard `Python DB-API`_
-(except when it comes to `transaction handling`_). If you're not familiar with
-the Python DB-API, note that the SQL statement in ``cursor.execute()`` uses
-placeholders, ``"%s"``, rather than adding parameters directly within the SQL.
-If you use this technique, the underlying database library will automatically
-add quotes and escaping to your parameter(s) as necessary. (Also note that
-Django expects the ``"%s"`` placeholder, *not* the ``"?"`` placeholder, which is
-used by the SQLite Python bindings. This is for the sake of consistency and
-sanity.)
-
-A final note: If all you want to do is a custom ``WHERE`` clause, you can just
-use the ``where``, ``tables`` and ``params`` arguments to the standard lookup
-API. See `Other lookup options`_.
-
-.. _Python DB-API: http://www.python.org/peps/pep-0249.html
-.. _Other lookup options: ../db-api/#extra-select-none-where-none-params-none-tables-none
-.. _transaction handling: ../transactions/
-
-Overriding default model methods
---------------------------------
-
-As explained in the `database API docs`_, each model gets a few methods
-automatically -- most notably, ``save()`` and ``delete()``. You can override
-these methods to alter behavior.
-
-A classic use-case for overriding the built-in methods is if you want something
-to happen whenever you save an object. For example::
-
-    class Blog(models.Model):
-        name = models.CharField(max_length=100)
-        tagline = models.TextField()
-
-        def save(self):
-            do_something()
-            super(Blog, self).save() # Call the "real" save() method.
-            do_something_else()
-
-You can also prevent saving::
-
-    class Blog(models.Model):
-        name = models.CharField(max_length=100)
-        tagline = models.TextField()
-
-        def save(self):
-            if self.name == "Yoko Ono's blog":
-                return # Yoko shall never have her own blog!
-            else:
-                super(Blog, self).save() # Call the "real" save() method.
-
-.. _database API docs: ../db-api/
-
-Model inheritance
-=================
-
-**New in Django development version**
-
-Model inheritance in Django works almost identically to the way normal class
-inheritance works in Python. The only decision you have to make is whether you
-want the parent models to be models in their own right (with their own
-database tables), or if the parents are just holders of common information
-that will only be visible through the child models.
-
-Often, you will just want to use the parent class to hold information that you
-don't want to have to type out for each child model. This class isn't going to
-ever be used in isolation, so `abstract base classes`_ are what you're after. However, if you're subclassing an existing model (perhaps something from another application entirely), or want each model to have its own database table, `multi-table inheritance`_ is the way to go.
-
-Abstract base classes
----------------------
-
-Abstract base classes are useful when you want to put some common information
-into a number of other models. You write your base class and put
-``abstract=True`` in the ``Meta`` class. This model will then not be used to
-create any database table. Instead, when it is used as a base class for other
-models, its fields will be added to those of the child class. It is an error
-to have fields in the abstract base class with the same name as those in the
-child (and Django will raise an exception).
-
-An example::
-
-    class CommonInfo(models.Model):
-        name = models.CharField(max_length=100)
-        age = models.PositiveIntegerField()
-
-        class Meta:
-            abstract = True
-
-    class Student(CommonInfo):
-        home_group = models.CharField(max_length=5)
-
-The ``Student`` model will have three fields: ``name``, ``age`` and
-``home_group``. The ``CommonInfo`` model cannot be used as a normal Django
-model, since it is an abstract base class. It does not generate a database
-table or have a manager or anything like that.
-
-For many uses, this type of model inheritance will be exactly what you want.
-It provides a way to factor out common information at the Python level, whilst
-still only creating one database table per child model at the database level.
-
-``Meta`` inheritance
-~~~~~~~~~~~~~~~~~~~~
-
-When an abstract base class is created, Django makes any ``Meta`` inner class
-you declared on the base class available as an attribute. If a child class
-does not declare its own ``Meta`` class, it will inherit the parent's
-``Meta``. If the child wants to extend the parent's ``Meta`` class, it can
-subclass it. For example::
-
-    class CommonInfo(models.Model):
-        ...
-        class Meta:
-            abstract = True
-            ordering = ['name']
-
-    class Student(CommonInfo):
-        ...
-        class Meta(CommonInfo.Meta):
-            db_table = 'student_info'
-
-Django does make one adjustment to the ``Meta`` class of an abstract base
-class: before installing the ``Meta`` attribute, it sets ``abstract=False``.
-This means that children of abstract base classes don't automatically become
-abstract classes themselves. Of course, you can make an abstract base class
-that inherits from another abstract base class. You just need to remember to
-explicitly set ``abstract=True`` each time.
-
-Some attributes won't make sense to include in the ``Meta`` class of an
-abstract base class. For example, including ``db_table`` would mean that all
-the child classes (the ones that don't specify their own ``Meta``) would use
-the same database table, which is almost certainly not what you want.
-
-Be careful with ``related_name``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you are using the ``related_name`` attribute on a ``ForeignKey`` or
-``ManyToManyField``, you must always specify a *unique* reverse name for the
-field. This would normally cause a problem in abstract base classes, since the
-fields on this class are included into each of the child classes, with exactly
-the same values for the attributes (including ``related_name``) each time.
-
-To work around this problem, when you are using ``related_name`` in an
-abstract base class (only), part of the name should be the string
-``'%(class)s'``. This is replaced by the lower-cased name of the child class
-that the field is used in. Since each class has a different name, each related
-name will end up being different. For example::
-
-    class Base(models.Model):
-        m2m = models.ManyToMany(OtherModel, related_name="%(class)s_related")
-
-        class Meta:
-            abstract = True
-
-    class ChildA(Base):
-        pass
-
-    class ChildB(Base):
-        pass
-
-The reverse name of the ``ChildA.m2m`` field will be ``childa_related``,
-whilst the reverse name of the ``ChildB.m2m`` field will be
-``childb_related``. It is up to you how you use the ``'%(class)s'`` portion to
-construct your related name, but if you forget to use it, Django will raise
-errors when you validate your models (or run ``syncdb``).
-
-If you don't specify a ``related_name`` attribute for a field in an abstract
-base class, the default reverse name will be the name of the child class
-followed by ``'_set'``, just as it normally would be if you'd declared the field directly on the child class. For example, in the above code, if the ``related_name`` attribute was omitted, the reverse name for the ``m2m`` field would be ``childa_set`` in the ``ChildA`` case and ``childb_set`` for the ``ChildB`` field.
-
-Multi-table inheritance
------------------------
-
-The second type of model inheritance supported by Django is when each model in
-the hierarchy is a model all by itself. Each model corresponds to its own
-database table and can be queried and created individually. The inheritance
-relationship introduces links between the child model and each of its parents
-(via an automatically created ``OneToOneField``). For example::
-
-    class Place(models.Model):
-        name = models.CharField(max_length=50)
-        address = models.CharField(max_length=80)
-
-    class Restaurant(Place):
-        serves_hot_dogs = models.BooleanField()
-        serves_pizza = models.BooleanField()
-
-All of the fields of ``Place`` will also be available in ``Restaurant``,
-although the data will reside in a different database table. So these are both
-possible::
-
-    >>> Place.objects.filter(name="Bob's Cafe")
-    >>> Restaurant.objects.filter(name="Bob's Cafe")
-
-If you have a ``Place`` that is also a ``Restaurant``, you can get from the
-``Place`` object to the ``Restaurant`` object by using the lower-case version
-of the model name::
-
-    >>> p = Place.objects.filter(name="Bob's Cafe")
-    # If Bob's Cafe is a Restaurant object, this will give the child class:
-    >>> p.restaurant
-    <Restaurant: ...>
-
-However, if ``p`` in the above example was *not* a ``Restaurant`` (it had been
-created directly as a ``Place`` object or was the parent of some other class),
-referring to ``p.restaurant`` would give an error.
-
-``Meta`` and multi-table inheritance
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In the multi-table inheritance situation, it doesn't make sense for a child
-class to inherit from its parent's ``Meta`` class. All the ``Meta`` options
-have already been applied to the parent class and applying them again would
-normally only lead to contradictory behaviour (this is in contrast with the
-abstract base class case, where the base class doesn't exist in its own
-right).
-
-So a child model does not have access to its parent's ``Meta`` class. However,
-there are a few limited cases where the child inherits behaviour from the
-parent: if the child does not specify an ``ordering`` attribute or a
-``get_latest_by`` attribute, it will inherit these from its parent.
-
-If the parent has an ordering and you don't want the child to have any natural
-ordering, you can explicitly set it to be empty::
-
-    class ChildModel(ParentModel):
-        ...
-        class Meta:
-            # Remove parent's ordering effect
-            ordering = []
-
-Inheritance and reverse relations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Because multi-table inheritance uses an implicit ``OneToOneField`` to link the
-child and the parent, it's possible to move from the parent down to the child,
-as in the above example. However, this uses up the name that is the default
-``related_name`` value for ``ForeignKey`` and ``ManyToManyField`` relations.
-If you are putting those type of relations on a subclass of another model, you
-**must** specify the ``related_name`` attribute on each such field. If you
-forget, Django will raise an error when you run ``manage.py validate`` or try
-to syncdb.
-
-For example, using the above ``Place`` class again, let's create another
-subclass with a ``ManyToManyField``::
-
-    class Supplier(Place):
-        # Must specify related_name on all relations.
-        customers = models.ManyToManyField(Restaurant,
-                related_name='provider')
-
-For more information about reverse relations, refer to the `Database API
-reference`_ . For now, just remember to run ``manage.py validate`` when
-you're writing your models and pay attention to the error messages.
-
-Specifying the parent link field
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As mentioned, Django will automatically create a ``OneToOneField`` linking
-your child class back any non-abstract parent models. If you want to control
-the name of the attribute linking back to the parent, you can create your own
-link field and pass it ``parent_link=True``. For example, to explicitly
-specify the field that will link ``Supplier`` to ``Place`` in the above
-example, you could write::
-
-    class Supplier(Place):
-        parent = models.OneToOneField(Place, parent_link=True)
-        ...
-
-Multiple inheritance
---------------------
-
-Just as with Python's subclassing, it's possible for a Django model to inherit
-from multiple parent models. Keep in mind that normal Python name resolution
-rules apply. The first base class that a particular name appears in (e.g.
-``Meta``) will be the one that is used. We stop searching once we find the
-name once. This means that if multiple parents contain a ``Meta`` class, only
-the first one is going to be used. All others will be ignored.
-
-Generally, you won't need to inherit from multiple parents. The main use-case
-where this is useful is for ''mix-in'' classes: adding a particular extra
-field or method to every class that inherits the mix-in. Try to keep your
-inheritance hierarchies as simple and straightforward as possible so that you
-won't have to struggle to work out where a particular piece of information is
-coming from.
-
-Models across files
-===================
-
-It's perfectly OK to relate a model to one from another app. To do this, just
-import the related model at the top of the model that holds your model. Then,
-just refer to the other model class wherever needed. For example::
-
-    from mysite.geography.models import ZipCode
-
-    class Restaurant(models.Model):
-        # ...
-        zip_code = models.ForeignKey(ZipCode)
-
-Using models
-============
-
-Once you have created your models, the final step is to tell Django you're
-going to *use* those models.
-
-Do this by editing your settings file and changing the ``INSTALLED_APPS``
-setting to add the name of the module that contains your ``models.py``.
-
-For example, if the models for your application live in the module
-``mysite.myapp.models`` (the package structure that is created for an
-application by the ``manage.py startapp`` script), ``INSTALLED_APPS`` should
-read, in part::
-
-    INSTALLED_APPS = (
-        #...
-        'mysite.myapp',
-        #...
-    )
-
-Providing initial SQL data
-==========================
-
-Django provides a hook for passing the database arbitrary SQL that's executed
-just after the CREATE TABLE statements. Use this hook, for example, if you want
-to populate default records, or create SQL functions, automatically.
-
-The hook is simple: Django just looks for a file called
-``<appname>/sql/<modelname>.sql``, where ``<appname>`` is your app directory and
-``<modelname>`` is the model's name in lowercase.
-
-In the ``Person`` example model at the top of this document, assuming it lives
-in an app called ``myapp``, you could add arbitrary SQL to the file
-``myapp/sql/person.sql``. Here's an example of what the file might contain::
-
-    INSERT INTO myapp_person (first_name, last_name) VALUES ('John', 'Lennon');
-    INSERT INTO myapp_person (first_name, last_name) VALUES ('Paul', 'McCartney');
-
-Each SQL file, if given, is expected to contain valid SQL statements
-which will insert the desired data (e.g., properly-formatted
-``INSERT`` statements separated by semicolons).
-
-The SQL files are read by the ``sqlcustom``, ``sqlreset``, ``sqlall`` and
-``reset`` commands in ``manage.py``. Refer to the `manage.py documentation`_
-for more information.
-
-Note that if you have multiple SQL data files, there's no guarantee of the
-order in which they're executed. The only thing you can assume is that, by the
-time your custom data files are executed, all the database tables already will
-have been created.
-
-.. _`manage.py documentation`: ../django-admin/#sqlcustom-appname-appname
-
-Database-backend-specific SQL data
-----------------------------------
-
-There's also a hook for backend-specific SQL data. For example, you can have
-separate initial-data files for PostgreSQL and MySQL. For each app, Django
-looks for a file called ``<appname>/sql/<modelname>.<backend>.sql``, where
-``<appname>`` is your app directory, ``<modelname>`` is the model's name in
-lowercase and ``<backend>`` is the value of ``DATABASE_ENGINE`` in your
-settings file (e.g., ``postgresql``, ``mysql``).
-
-Backend-specific SQL data is executed before non-backend-specific SQL data. For
-example, if your app contains the files ``sql/person.sql`` and
-``sql/person.postgresql.sql`` and you're installing the app on PostgreSQL,
-Django will execute the contents of ``sql/person.postgresql.sql`` first, then
-``sql/person.sql``.
diff --git a/docs/obsolete/_images/formrow.gif b/docs/obsolete/_images/formrow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3ff425862fb29a97b503a54490252f9894b99951
GIT binary patch
literal 9156
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

literal 0
HcmV?d00001

diff --git a/docs/obsolete/_images/module.gif b/docs/obsolete/_images/module.gif
new file mode 100644
index 0000000000000000000000000000000000000000..43c4d4de99d94fe8be6c5d541d4f9075e06e6d4f
GIT binary patch
literal 5786
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

literal 0
HcmV?d00001

diff --git a/docs/obsolete/_images/objecttools_01.gif b/docs/obsolete/_images/objecttools_01.gif
new file mode 100644
index 0000000000000000000000000000000000000000..067edb6f7301524db930046ebaeb0b0801184ad7
GIT binary patch
literal 1473
zcmd^;|4$Ql7{{+IU|ZQ>4hS%usGvnUvng)km#w0L;@s4!u!$4QWK3}mM29XWMNv1L
zB7(AGt<<9)aA2iCyEVD7gF_3QU8q*eD!1LZrO<InEh#xUZhltxZ|wcU^TU&O-g(}6
z<;mKdxiY=rC=?5E5HvM4MWQeO+_PuTP=cPBnE`+o0ANUrWH><(5ER9!fDMDEr>E(l
z6-Iy%KvC3a_YN?e!S1yNcQA@*VUNed`zWWEtE{Z_IZaj@<#2fjIskwm1Q-AUHrf~9
zftBGMtYCM0gF;}~#d1V2L5q7S7tJt!H*PYS#>U3{j8mi0;5Mqcxmn<OA8oTToX?H-
z_V&WC!D}}RyIF@%aM7%dVj0R7@G^cs3pg)|BCN9qaBhkN-QC?@7s&@(;BFxJ{Q$6j
z7DEw~pbQ4X$jC@vU!T`z0s>2z3|gbZ<HBhYbKxk4VF37zMq}_YhnKIfuh*KKfcJ1T
zu7zO}X~hi2nwlEGJw|ZKVL<@TI7lN80Iao)kB?(UqX9-84#(NEXZe69z;ir9OiWA=
z2rT$LO-)U9yIrr>GYmsusL4iY5tIX<uCC5vv5bz6QaECF(152Ai<4zp!s&6kJ&lcx
zX0zFDLNFNa?CeBL_FDvvSs56$3Les9$NT&H5rVc-et~tkNFzrRR=3Xt!z9fO4-X4|
z`qHIK)z#Ik0J^%mT3cIvLCQ9~t*y<@_=SK+tyTv?0sx@@ljcu{{8v}`d_MmPND80=
zS;D3cUGEv`%S-YGI&P5XBNt|CHW`sS7h;zm92qb+WmQOG4rEMW`oUVo2Uy-<=gnX0
z7Z+F>HrE!;&8Qv?FUr-)?=`B<$PcG<q1zj><x1s~11%4lx8=mFJ?X63Q7JjTfwCPN
zcQ!y!!qx5vw0h0Du7oGZ;$*2v^j^=!SIU-(a;24F_cQ7a=3>iibMD2bohM#Qi6hpw
zez$b!Zmq6EhRI^C_hf-r*Cv<i#4^>MHL?=jR(($7CZcMa`18LX-kSSXL8;_XO`^D@
zrQ9BGKvw4!x_Y#G?xbcO$^T7Mw;?h7+P=>YzS)pj(JM|<?^Yj3j%r_j+k62$g=QPd
zCogRIeTAxjR(qTx|JcfXZxee%CLaG>{l|?t?Yl1$NM>x?F|oF+Ah{)RYeL?}$m8$q
z9nvgmB>DzZWwAp<>LTLmpXcVTI-V18TZlY8TSc4>35_q6x=t;;R=&R~)vU;hIz;RU
zD>Nv^n{t=0DA&$==VA%8PMmxBMriEGBB)lT=WKf;@KUjIJ$|_&QkgNm;NzVieRK0#
zp1C|M=F1a(3v*TRyQ<DeqPGpaf3D#4-Kg&gF&WZPME8om@Ou~Q7K~2GB^}D`q-d3t
zAFF>FSJi@iJDDzDFe@oTru^#1lKjHMkGka=af&MR-PiP`p^D@Wmr3J}7GHmTNGi%p
zY*TeNL@kO)mF^6gZT>Z09o126JaoH5kc(2q=^|MIN|X*ZXKu}@RXmDLgP=ExO;DKP
z)XaTxrY6a-<*(~W(xT*w`4w@_&J%SnKxJW9#LLPY4|{~{jnTXIf1*?Wl$ieH{G5Ll
zjT|Wh+4)~fLL$=Cl9ZvBB=h8-hDVd(SN5-;m!c9J14;G8lY@%p_DP%a2YkB<TKz9s
CW5aC#

literal 0
HcmV?d00001

diff --git a/docs/obsolete/_images/objecttools_02.gif b/docs/obsolete/_images/objecttools_02.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0faa39a6a94dcbce6c99768e38ea903b6d3c7100
GIT binary patch
literal 1874
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
QG=DBXv^lybI$W{k|DldvhX4Qo

literal 0
HcmV?d00001

diff --git a/docs/admin_css.txt b/docs/obsolete/admin-css.txt
similarity index 89%
rename from docs/admin_css.txt
rename to docs/obsolete/admin-css.txt
index 5822e26e45..f21d60888c 100644
--- a/docs/admin_css.txt
+++ b/docs/obsolete/admin-css.txt
@@ -1,7 +1,16 @@
+.. _obsolete-admin-css:
+
 ======================================
 Customizing the Django admin interface
 ======================================
 
+.. warning::
+
+    The design of the admin has changed somewhat since this document was
+    written, and parts may not apply any more. This document is no longer
+    maintained since an official API for customizing the Django admin interface
+    is in development.
+
 Django's dynamic admin interface gives you a fully-functional admin for free
 with no hand-coding required. The dynamic admin is designed to be
 production-ready, not just a starting point, so you can use it as-is on a real
@@ -20,13 +29,13 @@ group in a box and applies certain styles to the elements within. An ``h2``
 within a ``div.module`` will align to the top of the ``div`` as a header for the
 whole group.
 
-.. image:: http://media.djangoproject.com/img/doc/admincss/module.gif
+.. image:: _images/module.gif
    :alt: Example use of module class on admin homepage
 
 Column Types
 ============
 
-.. admonition:: Note
+.. note::
 
     All admin pages (except the dashboard) are fluid-width. All fixed-width
     classes from previous Django versions have been removed.
@@ -50,7 +59,9 @@ colSM
     doesn't matter.
 
 For instance, you could stick this in a template to make a two-column page with
-the sidebar on the right::
+the sidebar on the right:
+
+.. code-block:: html+django
 
     {% block coltype %}colMS{% endblock %}
 
@@ -115,23 +126,27 @@ to the right of the page. The tools are wrapped in a ``ul`` with the class
 additional class on the ``a`` for that tool. These are ``.addlink`` and
 ``.viewsitelink``.
 
-Example from a changelist page::
+Example from a changelist page:
+
+.. code-block:: html+django
 
     <ul class="object-tools">
       <li><a href="/stories/add/" class="addlink">Add redirect</a></li>
     </ul>
 
-.. image:: http://media.djangoproject.com/img/doc/admincss/objecttools_01.gif
+.. image:: _images/objecttools_01.gif
    :alt: Object tools on a changelist page
 
-and from a form page::
+and from a form page:
+
+.. code-block:: html+django
 
     <ul class="object-tools">
      <li><a href="/history/303/152383/">History</a></li>
      <li><a href="/r/303/152383/" class="viewsitelink">View on site</a></li>
     </ul>
 
-.. image:: http://media.djangoproject.com/img/doc/admincss/objecttools_02.gif
+.. image:: _images/objecttools_02.gif
    :alt: Object tools on a form page
 
 Form Styles
@@ -161,7 +176,7 @@ Each row of the form (within the ``fieldset``) should be enclosed in a ``div``
 with class ``form-row``. If the field in the row is required, a class of
 ``required`` should also be added to the ``div.form-row``.
 
-.. image:: http://media.djangoproject.com/img/doc/admincss/formrow.gif
+.. image:: _images/formrow.gif
    :alt: Example use of form-row class
 
 Labels
diff --git a/docs/oldforms.txt b/docs/obsolete/forms.txt
similarity index 97%
rename from docs/oldforms.txt
rename to docs/obsolete/forms.txt
index 7703483f5d..9bfd4a979e 100644
--- a/docs/oldforms.txt
+++ b/docs/obsolete/forms.txt
@@ -1,3 +1,5 @@
+.. _obsolete-forms:
+
 ===============================
 Forms, fields, and manipulators
 ===============================
@@ -8,9 +10,7 @@ Forwards-compatibility note
 The legacy forms/manipulators system described in this document is going to be
 replaced in the next Django release. If you're starting from scratch, we
 strongly encourage you not to waste your time learning this. Instead, learn and
-use the new `forms library`_.
-
-.. _forms library: ../forms/
+use the new :ref:`forms library <topics-forms-index>`.
 
 Introduction
 ============
@@ -232,8 +232,8 @@ Below is the finished view::
                 new_place = manipulator.save(new_data)
 
                 # Redirect to the object's "edit" page. Always use a redirect
-                # after POST data, so that reloads don't accidently create
-                # duplicate entires, and so users don't see the confusing
+                # after POST data, so that reloads don't accidentally create
+                # duplicate entries, and so users don't see the confusing
                 # "Repost POST data?" alert box in their browsers.
                 return HttpResponseRedirect("/places/edit/%i/" % new_place.id)
         else:
@@ -358,8 +358,8 @@ identical and could in fact be collapsed into a single view. This is left as an
 exercise for said programmer.
 
 (However, the even-more-astute programmer will take heed of the note at the top
-of this document and check out the `generic views`_ documentation if all she
-wishes to do is this type of simple create/update.)
+of this document and check out the :ref:`generic views <ref-generic-views>`
+documentation if all she wishes to do is this type of simple create/update.)
 
 Custom forms and manipulators
 =============================
@@ -684,13 +684,9 @@ fails. If no message is passed in, a default message is used.
     type from the list used to create the validator.
 
 ``RelaxNGCompact``
-    Used to validate an XML document against a Relax NG compact schema. Takes
-    a file path to the location of the schema and an optional root element
-    (which is wrapped around the XML fragment before validation, if supplied).
-    At validation time, the XML fragment is validated against the schema using
-    the executable specified in the ``JING_PATH`` setting (see the settings_
-    document for more details).
-
-.. _`generic views`: ../generic_views/
-.. _`models API`: ../model-api/
-.. _settings: ../settings/
+    Used to validate an XML document against a Relax NG compact schema. Takes a
+    file path to the location of the schema and an optional root element (which
+    is wrapped around the XML fragment before validation, if supplied). At
+    validation time, the XML fragment is validated against the schema using the
+    executable specified in the ``JING_PATH`` setting (see the :ref:`settings
+    <ref-settings>` document for more details).
diff --git a/docs/obsolete/index.txt b/docs/obsolete/index.txt
new file mode 100644
index 0000000000..ae384d8ba9
--- /dev/null
+++ b/docs/obsolete/index.txt
@@ -0,0 +1,16 @@
+.. _obsolete-index:
+
+Deprecated/obsolete documentation
+=================================
+
+These documents cover features that have been deprecated or that have been
+replaced in newer versions of Django. They're preserved here for folks using old
+versions of Django or those still using deprecated APIs. No new code based on
+these APIs should be written.
+
+.. toctree::
+   :maxdepth: 1
+   
+   admin-css
+   forms
+   newforms-migration
\ No newline at end of file
diff --git a/docs/obsolete/newforms-migration.txt b/docs/obsolete/newforms-migration.txt
new file mode 100644
index 0000000000..da56b5704e
--- /dev/null
+++ b/docs/obsolete/newforms-migration.txt
@@ -0,0 +1,48 @@
+.. _howto-newforms-migration:
+
+Migrating from "oldforms" to "newforms"
+=======================================
+
+:mod:`django.newforms` is new in Django's 0.96 release, but, as it won't be new
+forever. We plan to rename it to ``django.forms`` in next official release. The
+current ``django.forms`` package will be available as ``django.oldforms`` until
+Django 1.0, when we plan to remove it for good.
+
+If you're using "old" forms -- and if you started using Django after 0.96 you're
+probably not -- you need to read this document and understand this migration
+plan.
+
+    * The old forms framework (the current ``django.forms``) has been copied to
+      ``django.oldforms``. Thus, you can start upgrading your code *now*,
+      rather than waiting for the future backwards-incompatible change, by
+      changing your import statements like this::
+
+          from django import forms             # old
+          from django import oldforms as forms # new
+
+    * In the next Django release, we will move the current ``django.newforms``
+      to ``django.forms``. This will be a backwards-incompatible change, and
+      anybody who is still using the old version of ``django.forms`` at that
+      time will need to change their import statements, as described in the
+      previous bullet.
+
+    * We will remove ``django.oldforms`` in Django 1.0. It will continue to be
+      available from older tags in our SVN repository, but it will not be
+      consider part of Django, and will not be supported..
+
+With this in mind, we recommend you use the following import statement when
+using ``django.newforms``::
+
+    from django import newforms as forms
+
+This way, your code can refer to the ``forms`` module, and when
+``django.newforms`` is renamed to ``django.forms``, you'll only have to change
+your ``import`` statements.
+
+If you prefer "``import *``" syntax, you can do the following::
+
+    from django.newforms import *
+
+This will import all fields, widgets, form classes and other various utilities
+into your local namespace. Some people find this convenient; others find it
+too messy. The choice is yours.
diff --git a/docs/ref/contrib/_images/flatfiles_admin.png b/docs/ref/contrib/_images/flatfiles_admin.png
new file mode 100644
index 0000000000000000000000000000000000000000..391a629348e22c2ef6d966bf65e909bfaabf5372
GIT binary patch
literal 42243
zcmeFZWmKHa(>{0;T!T9Vg1fsza0?E>A-KD12rj{$;4-)ecL)$H$OLzHci74Eyzl$_
z@Bi%Xm;JII_CAL*(>>7DU0qdObzMC~d{mM~MIuB300321=7TB#yb%Tfs1SrVke-(P
z4mZdPqN9wC3jiQv{r!OgGP3Xi07=<OLgM2`O9xj67fT06GFb@;GDl|zb1Pdj0PtMM
zR<lr7+s75UUAYpM4-ZU|cTmMaAX62O3dD}5rYA>4mkTG)o5xY<!H|@MA^Mpc4jmgC
z7>%RCh!TnP2Y!n@KlV#Oc;v|Ax=(@4T>I_L*h?c=c(>v*yM6+`8v!LnhC_ub5T#6<
z6l3knQ2*fi7PDv&5~U-6j!^%Z+~t`93b^wZ6l8ec4c`esc}^oE0Nsk2-K@l6uWt{;
z)AgVNL!i1{<9X!~0<i&6?^y9-KvW7UFguM}4akK7j7CjOHi3^!fDui=&NL91eV6V7
z1?VP`<3Q!c17uic;U54?0ia?+Gg1=JW(Ba#<@@=7KTH6ttd_Y9P}2-_kE0{k0SG7n
zt4jD+IsnE8F#1VB;R%GK1K3g*T7u^cRp`6)5KX1m3ARx3Ne1a6Fgd|%X)%-1j?3aP
zU~?P4G0qTW?)6G1U=QMayLR~t0CMATAgjH6_8dp68XxD5Z9+3-I_QFXeQ#p2`LaDx
z?kEZX>#qJ&FN`epgn<HZfp#zXR3|W&2FST?w^8PGZ$%q{-2DZuOUJ*uk<9znGC#k)
zwe?4?UtHICM9c5RqSvrn>)H0+U-0SndaZMVGKgJ2NE+sDt@qcJLJ{#q0%C~C(oUT8
zQ#11G6Up@Zep!<iZF=lY6-=kt4;j&y>_zV*#1rTSsD8hG-dJUPgce@q0&1*<p?u<*
zO7%^lZ{%svwOzY6ZUNw;&7o(876CfY^2_>!$Lp!cvve*M5NIx&-~<2$A1ImCN9sj}
z5CGsqZV-Kq7|~S^K4Ui=aS!ZL5Au@{cZfJ;f3G;YIMU}pVrL_|iePct(6Jg4dLxz@
zQ4-E>70b{>M>OVMjUQ-2j&C1~5psHH+k+5c#C{@R8Iv!BLzzTsQ^X?RrGLF6?~#GQ
zjG`nP4#!q`FCWh(!=@UkPNpG4av|jWhA&J{sx@BVC%_*36xuG$mK0Q{A~b{2DA7{N
zLl`2Jk39L=l`SI<H#c+Axq(n9nmccIvfT3RLY%O~5Nr1yK0HUiEi3b2pLi`VBVwZI
zXzlw7l=4Bs8qEsmwuo!fiCPaB%pl2bL~a-laWZ34F&S+IZKXdlrDVjEoEQs;Jc!UC
zD!nxC6HDbAs9Q1a`|(ZK*}}AC7%Ap3<FHuJeZnRBc_=X>B-m+MzP*vHEmZ%F`CIC@
zy(+~%V_7Dr3?W70@WN-CI(WV$Mlyz<U$?Ti`nEW>h_=Wtbdj=6M4bxn)HY~UN37)t
zw$Zmax8cmv*u^voGE|pK^VBi8;y#I2<~6BStAv$eak^#jjeWtDl`pEyPo5^U#IwA$
zs@`*L#aK=zRZ5-I`aQZYy_dQNedU3I8jAB}DBOaUAQK-R--5sczdB8!m|!}JU`U;n
zhwU(JH~nq8gN8PJ6TL4^{0LIATrzbs5j~4~8K@Yv0z%ff)EHHdD>G2@tCG^-P}?j+
zoJlFy0A+tXR3lQeC=)0R16h<hsEZW(>pVxm>GUb|DN7Wp<klK)whxjan-bJ}GLqY%
zmWR3parINzj?MeJ)3>EPle9$%fy(muBsk<awCYtalgvfnH`AQ%vRsuAcWFyfFa0A|
zuuthW=!l9r6<XNL^lU&WsVUm!GUY1e(uW<~RmUaS#T}AuI*&nUVncE?dNk4&apSPr
zyK3`l%Oyx9xQasj*Hz3Qn<ApTwhta%_9Z82Ih_W9ISLLXD_$MD55#^f&+5;14<*;q
zDB5uKD3oxEDC78o16)oHf+Q?Mi{~m5`hB7jMaId-sp}!}EmML8vr;iqZ=<aS^)@Lt
z?FQ`z3#j3!$*JWP4-`)_R25r_>52su1QdqGevRdi&82f?3bBFNcQbc0!I`VgMxQ)C
zF*cPp{V<cQ+xk?jbJEmq|Me4}PLa08C;fV<%Ir$2xwgu-5{!}-r9`FjoH>iWn)9aN
zrm|*&n(aSui&af_O@77}CU_Rj166$|i5-c4t$s1jLhz_z^JwKHpGf>&8l18DHThRE
z#<NaD{06R4_E{{nC(tMUaBMbVjneg7WvgXQOIzSsw77h^43CPC4<2Ps6=u#P8eIO_
zu_fnv?WDi%{rfsQvp%!;xOB1lg!{zmBy8#XFV63DIXWCJlYKuW)>O8qM3BEHv)Zgy
z_$x~&2U#@kQm~k^#A{W8YnqEZK)1%Hc)~Zr&fhnMHwAfC*jIE6fAMrT|7;#r?sLd7
z{JJU;K=Jzd)%$e{C<&y3vVe{V5)0CO^LXd&OWqYL!oO&CQ#XGs7M<H7h9ediTp7IG
zQ%P?5^XOY8`R#7nc>K5(+SiZ%dvlZU#yiGQef}skU&Fp?g^I*FhHDc}v88f(Of5;c
ztbTa-kn&+A(}GQzubN4Yi(VMSY%RFJ)5_T@GRSPM^J`W+TU*vvo|uoBzKYx4wsZCA
z_%duGdjomX2QQ7~r@o_C-gxiT*Am<^W=ux@6j6n6CElbnF?9M;+-Rx`EDx$!B(GkQ
zUW@lEQ`}SGe<bwiNtG^S=oP&aj^f+7yeJ1aiWs+BLTJjqwJV@1ENAlP;AXg!*|7`p
zcd&g)i2vp!4kA}fY_d48*fDn>tuXsq_cCA~)yzVg3_omB|E&U6hY6`kym(Lj6D^n?
zzRto-%e-qWVuUZHJcnWI_*ebN;y0eG)9<gxn7x?m2~9<z@>)zJ+B+Q;)_iq>PF{;h
zn>erxp_*_Nf<Gdg=<Q~e%a65EtNc5ty%lYO40=X_dm5o^4v{sGw!iuvE`g8rm9<%P
zRvV2ULbHj4aUvqCuov-CaRUC(E_rSfg*l9Lr7tBll$H0le4a4>ZN9&=!jz+nmI6xM
zNky|qonL4`UDa$jzP^!MWJw*PU2OZ(B+*jPCHSM=tYmn6Oh81vQ2k2%L7n^L_j02#
z_|AUngvh7;hVy84QMdi}S$Mc}Q3Fatan^j+>{0fy{#K+a0<?dZ@@S`DsbuGLJOuq4
z`Wc=AtqI&RGfVPYNL@8<j^R)mZRlO+OZKS;6Dl{VMoiY=28H7XudV%C#MN6;RQ?6`
zXrGF8`001<Bo-tr*5Vl#8B&>Q8IQUqx~<B;gs0{XR=l627vH_j;uO^JlDkwNwp!Q^
zo=&v5n263!&i3<XzF#t0%y079H635Ie(P}Bitf7pTk<t(SD;;BT<_wC>qXt-HkQ^8
zt&D1ZL%Rdl1HqTXY2~4|thS7*7CoDm6Yq{jAM@LNq8y&_<*N>_bKKXt*&IHh<&H~l
zhueYM>s8!ke`lKK@zJ(<51Nz8cI9@%E74=Id5Pt)SrOfrr9Y=j0oL6fxtCK*(zkG5
zzf8QuU&p<bfQ?I!8x2JbJ<Q=1=HuHCaem%^Dv_A@JVBj<_mclIT7`$p;(s@L2p*qG
zo61YQNKNdr^DTNl=sqN<UL5QlB<&pb<X|(n(tJGb@mTU8IW1UytGwk)7C`%Id0%_2
zHd*qRNRXKL3Im;X`DDt$v<S&JVJyTH#Q>l-*7s2*5z;0zl~Gj$0B<S)2>b#7_pgxG
zeE@J{1%Lx10N_sp06d2T!vQG($RL&dAg1oQaJ1}ZM4~YVoVg6;>}(G#>o0J+@z7%5
z!s2S%Itix?xH;+I;?kkPMz%@NH564@Wfsd4dISu+5Ou7+t5!sYWMfbX&i=2CGMChe
zj|Mxx_*{0;@{)RkXd`>;7|B1VV22uGOA?@b)<NrtL^o;tgh(EUE{^bQ@Kd>nIRstY
z^7DrH>lCNrG$%0{q)CC*$BNSTMCQiD!xP3I!po099wJ339=>|YLQjumRxMN(rJ9kP
zJm5r(1{oy}qqM0>bGqT<fr%q8q#fh?g#(7ojXVUMki;|RUDjl588UguByG)WjCNY9
zKk2~Q87jJXK?J4j7gUL?)bp<SNblfC>G!0vl#y>x-X^`F6}@>2hz=TY!eaxys1FDv
z6nnr~lXr+z`!i9fkG-tDrKOCr@(@8NFhiogU>8*EKhGc^g8q@#5e8u8{q;t!OcMRK
z>DLO&M1$@dXmJXC$YXA9POJQ!uP4c+k%FUyjxSzXEQ2(Qm<6J(qa3Ekx$-8NfC?<8
zuTy{(67ile(vW-9bJlk-l6GUV#Qe$53NS*m!-l@3KtT~mY32go`uK8_Okuykc^M0S
zCoCA+d?OyF+gD?DIE1JFIRC{#NPuZt^>#L@xl`b5Cn2Eyc828jIhUPJAu%}|`JJBY
z_{^4ugP{AZTH{2OXDzQugQf#Eeq8B-A5?kzL>yu>zE>30(z+u6g$ep70rfF3FSy5n
zv}!H&=_882jwk}JpYw7c?;5h_8*jN<v+zkvYy6j95X0ULL!=xass^1;1BgDIKuw2C
z=d`!Go=Y?@-5y!&Ds;%9cz1LfI5}umEY{UA<NIA5)jrV@5-CD!yph|a=%r5iEJbkd
zvEp~T<TBCsc5J=Gr`v9I3Zxpd(T^G;_2o;B@lU9NT?FIX&Je_ooDc#<&GN5~dj3+J
zKuw4-;`U7;v)v+1oY3nOJGhjgowfv!;2QZzh&=!{&<*~c)>nU@Yo%U5Y(_f}jGQ-h
z#^Y0iDj~<KnNphn1{ifl>4Pc??pbQQYINa#0h4mP#*~i(z(`%l_6_rwpINTc8}oJO
zY$I@C<RR+_u)Sq~r;I=}8_?}Yn1`YQ&~`2&#5ltH$=AsxiB^vtUIKw&CU`%nWGK2d
z#k5OsfSx<`s%lGHB_1FeFSe=Emt#jrv5{y(A-x#fNf-!|r26sfi*p*!J0OrAn-&)L
z5?8!n&B47Zbe#p%ns1tjT+eUdy<6{T{M%<#a{()kyEdBgL4(l$iO%Ba!G54p%OJJO
zIzp~&RR8|G?G!u1(?rgUaP`3;$MF^w?`s@r3Xu!t8e6;F>$;}+4FHQv6p9do`N)G3
zpfYPVoaQpr^)C8!@oF^;?^;U1>!dS^V2vG_MtL|6POTpnyyB`(e!C26Eo?t`*;Te*
zX}D=S)v8*V%RSc=nuu+BG^;Vbvp5$)l?a&(cc0`yfg-b*)0r6OmoG?~e;i31Z`-B>
z02x~SyDJ-HC?NOl>wU?|D=1NVb<L>nOnKTDu*HAR33@Sq>xC+@qwIJoUurB<W9<2(
zFO*!oU{s6;<y8S9p~R~M>hH9v?<Nz!v;ARBa$-b#osl&A`^TTwB$WNpin35p@<NJ?
zIMZ{y59o*!`x4&3&>GW0W4|Jy6T+V5(TJqZ>X3}GMNbUPxO=w=C9rXuYF!432ks&y
zThRjPBlu4axgQCnq`ONew=thFZO}{+qu%+3NCioxL*&cq8?n_!s63>I=C%(pU9o*o
z(TJr2P~gH;a-Av)K^0{EQV1Bhq>En>VyZ&Pi>uxlA;@xGa4!73^zCMWE>g!rv;jcR
zgF*hM6a2o=x#}b;P;BXUM~=dC-RqDrD5ceh{*KEF$j^t<7-Sj#ph4S*IRgAlGIHdF
z4N+x1gr$II^gqBLM76fDsjsU;+fYdi;O38=bwaPg0z!J28Q{Y71JMa9Awf;|D<r03
zck3pE70bO;HO&o%hNj%)7`la}?%7pTH^cky#A+?few>{&M}F2$T|CB`eSU3et1lYf
z5xg@bv-D`iIp!fCria(d=@#{n*DwXYy}{wU4Xj)xL3xf_oZGyDxqY?hYAb1~)p+(>
z9SLk}F3!9DHg~O>d1(F6-b3Cgk32Iw_XxB%tq3;<Xy43(SLbGaKO%SOB!218_sfUO
zq7qAtXz$P&rtr&C&?k96ySQB%5C7bb&X(1<Fxac1UdY_dPZv8(W<yV)!u-0gZO|Ik
zoxz%??w$e6ZhQ-ey8M2CsL;)Y-Qv;4iv!ZJebvcP<8#8h+11)ME77GywnxGdcdqa*
zUN<hzIlkZx<(K*+J9|s~KR!nXm2~At4Q<~1i>=2ZPXk+aL|ukW`IvyHoB!oKUZ#7)
z%Ubx6RduNY;Y(&mS(mfNwz3)i_vV7uvh#16qmvoB)@_18<egFHn(7)bP`+qk(=2Gp
zt;Y^k74sr)u=E~UFEjq7k+z4;qv#c-3)?C^`+K*t@B)LMY;5#P4rv0WPm1-gvq=RR
zb475+S)X77M(D9JbGYnAC~+GeNDd!clFGiSm@T?feU6)c@HnnG-l3R|O;h>3sI9R&
zbCN{H$HupJ;0)*Hf;)b$m7;NT)21KP@Dx#G1(!4HgaTv7bjW?Ap3f1R#@6KG@ijG$
zZd?hWgJg=XrCa(<V4u}=ca{;k9ha{A+^r*q6|#9OSLW3iSDUbXX@oL!8b90Ota@Wp
zek|epl3(8`Tsiq$YJS1ENO~!L(3?q_Ew{BDijbaAh~{kYXeoG)sYraqX}j859?{%C
z!Dmw3;XgX3Us;?sL#IX~raZf|+yUC)p-xqj$%p88uz&lVkdHO^q%M?M+4<zh@IYDB
z&VieNb$0?gv!u?;Gn&gt_b_q^zV^azx<Tcb2L9j{+~>HH2u$8_u-YnvGRkS$Azq{Q
z7XxBT!$zmJ_aCCav(I;@_g*E13zg5!DrfMFF4t66v@$T;{0d>)_i5f-?KJk2?#j~V
zryIy`a-)-kl@$Qnhi9{Yu~|}CS;*5-8!8-{OLj<%X4|Auh~};ZCe_+ZmoJzq(fHdq
z%k7_U?U=b*9GCio)$4W@#tP>TwfvhEj5p#0O>8H|$F^hi=eC~mQ6%)s1^rCyb4@*3
zhE(whXcsk^2&T=)nAlFAu@OG7USti;{V=mh{w$LzP~AWMv9_@;sGeFOO_1x8qwSNw
zVw^IrWGs{sCkDdwqDog=>ns6Ee<7~&yHsO`#ZGr=fsahwroXQewkF*l1>7ALHB0t-
zi+`m%xN}xG?5XNK`|6!M4G%Q!km%BXTFMc1weDRjy_r4L>++R|lF0mKJ+H5|i!oM2
zC41aB%gvK0<Ss5&mqQx~V&~T!3Is)Tvqx8!=Yi@52v9zhU@NhV9W1mM`;_aeB{f92
z$g5T6jkS6oHak=!I<8;hDu6kH(<y|;a55P_!MKc6P{_er47J7xyz!k0kyY#c^$;{j
zvfA{}=R&POCv#}Gq@y`c7_Z7}=IcID#k82wR!|>Fjc2ww1!LTI7FVU<)*5uPbE;WU
zWq(~#JansNr{8QGr9U+!bzquMSFFU~>~?Z;e!mQz&E#*aXKXz^H&RpB?uc)Bgx1=|
zulI7cujcZ}UGvJD(uhFA<y5<E?3<=&8~x~~2UASUjrU_;EHIsPU?r_^fdjXN`!jVk
zGI~CrgRA$-;1eYWfcAPXpGKMf$iB+P(q5;lp3UJV*hwX*4mDY<dV2lR3bZskO>ywP
z4hzfqA_|iNRkXwX`{$-X(8`KiW~Qp#&aZ4f*~7AVRr^f${;4VFi6#(#+{Dy+Xx0X!
zt_u!ooI-RY3oT<r9lqM-VC-;&m5p_s7o4Wu3XU$j+sUu|KR>Rv{)DvW>p>&0IlMDc
zRB2~sr(j@U*bl28!I>N?8AOb!e2y7giEiM1KgutEG*hPb%UW5&0uMt0WNFx8T|!s+
z(V}{}ra*{-s>lm`6B;C>5xj9yVeP!Dn4bQfn8N$WPsko{M7{F<;OORd<)ffBSOT_R
z?e8x-@U7gw9?R2`q^21fEJ;n;YD%p<nX`E3_gNM^J~kFB#0Aq=C#;g16hF$Fc|am3
zF7+}~>-Bt$3N1W0tpY}!{J8u}O?e>2S(rPDsB}S(OM6o_8B{mX=`xK5>1x)p1CfR+
z$bM(94EZCl!2h6I-sFXP?_!a3CP)r6jVon>H(lJpi@~Omb;L}H+!Nh9bvs%6E=Zeq
z_H7=HX$tGZo5czUYTnihLUrJ|S+faRx~s+}_XdxYQ(IXA5f9%`oEg7lwa==~w!WXv
z)86zf&(3c%GLod?lW>{$7G_x%x3tV2;w|d7z5y6VYbxfZr;pCyeaCYiR=U$RY_)W4
zEIc-wii657Eru@ZmN!W&<~|YGz>|3&{L+D&q|`v7&!7@^JD9;7(_B4yqw97ZXq_(X
zC+^Ez4r?}!uc`fQMs0ehna5#a?ps#YioUMO^s<`18eXD+y{{7c%AXiWvNDud6v#(!
zy^(}SrxMKko`EJ~S!X^$pH&GcYOD3~@FOyIWt31)W+KfbazKnzh*6$ULgsO*qom7X
zYw@)8H8IfUBtd}V6A$009~SGf5XDQ!&f`g|U}K9neoXDj>zoiRVG(9P6WzD5U(s*g
zmHvrI_fuY8Nlr0p?U<<%gdR^|r6j8iTg~zlJ;ylcBgv3sbkJ-)e<Bpn4;5GOvvydj
zx<sE{x~ODm&yC-r8v6ZaK_62@ZA6Chg{-)@g14qM@mp-(j&Wl12&6B$%^g)u^)`Xq
zV&_+M{K6~@Q-wSif)?!fy^8C=+TIazTphlG$oa7G{mj+Oirwn$^xoAUTEzk-ivUTD
zj_GP=#vvy;>Fp}GuqsZ0k>d-x$Umn}(v*c#2tKhsSyYX*W9l!@7oqm>tSF<bKu7_K
zgnIfEO-!bd8K-PQM=Vrwj9l!>CAwNq?k-IBY(EN2aD)}&;90{@%O1R?X|bdMQCAaJ
zG5649GrnP)Lr7FSQb*kDO{~Le$w19~yf#MEtY0QTxXaS>6c@i+YfufvbIqqk<NX5l
zJrPw|p@H39*TPOBOv@N1Wuf&+C4C=*?OZAc9_U5L4Sb&%obZ%%2P0G>3zaHfG0!#^
zQtD{GYU;`f7Il%giK3Cge}gTfE$(FR96eun3Fq@Bm`i}_Ju|c1{HZvV#iUa(I_@AA
z;PU%VmS@3+8`n|Av6~ki4S?Qj)BWb7To8sQbRW88=u>SA9U>x}!KJ`s1T)*5ZA4vv
zf*;=VpXjC9;AWS;6m}8x>|C1M`Aou32aC|68alFsYPLmwqgoCm2=tf}(#5z`G*XUP
zYfg`!WeLxI^qM5*E2u!+t8E1AP<=S(2y1#Jz>UJ@_N+eiv7mbom73&j)k>>*brr7w
zD6e%1&(U^4gCsTHY$q5>Rx^STmNQ1Rixxz0Syy4DzQz?-&NI1+dG$@EgG`nkwjh2}
zQN?PySaBqr{eIaX^>irJT)m~5#z+PY9$|s|Xz7w7IH9n1L-hNo#p$sdTqRvuwC(A&
zsD(U_8DB^7)y*FP{=>`%$<VwHY6GI^K-LMA2-Z8OT=39Y&da!c7zic?!~6_|_c_Ra
z0_dwJPR3D$o&2l=_mOH~6PdQ-n(JD>bE|@vi_Gc)|69=<votF@is~4PPlvDwaO?^b
z!(VQHYTstd6jLeW6IT~Wj36aVMI@L#Xqh<Q&yiuVJFbXM`VJ3c=MpwpjE}s!lvnk^
zT>{zx4a?J1t|!eZ@q!}8=dDkjCa;&KJEgAvB0bgy!XIye1KlN3Bt{K0`uiXbe3UF^
zdbf)$S)JOs4pVp#_EkA$7TDv;ee{I6Sr_L=2SIpn=|=)lXoMRN+cNtYrJtO#CZg(U
z&eKFZ4yt{aSSA#G(OGotP6tO;^G;u2*^;SbY4&>iVAMWu%(T=yQ$R0rYi8spzDJE-
zWg)umpPJj<vvv0Bz!p`*f#Xb$r;?p5-AOfL%|LY1<l(Y+I5>aHy^FJY61fZ|%(tNM
zlu&9NiG*aC!AK`)quz0n17+djQeS)w_E(Fbj}XI9S5y&$3!Kw$TQHLl*Gt;CEX$xC
z1%V*D{V_N4JqJKo5S}1McP-Cu5mRVlp>HFRSebqC(9xA;&MG~T!6RV@vT})3SHq4g
z@U<vl=HrNl;@eZZTIVoVLcVR_;at$pw*tM1q=v)sOH0R#mgSS2F2<E6(y-CoPwGu7
zUcN?)t1ha_Ta9|#D$ym~_pRgcqz$UuzFD_YGqgv6J8i{E*~Q1tPk%zRYpj~m3^$Ht
zq>hWbMx{)pqN~U*(2Q4OR{9f6HXr@S&tZQiX1*MlrPiO6V{?Bd7a)g)GJyac!`ueq
zgQ+UJv)V6I9GvUQ%AJr84$As*{R6svH?I-TjRLLLR<N>~Ygf^$^9%MC_(~e6Qy7CM
zJE1#Gop%*%RA2ctvpp8)?3V3~e?RTBnOi!P9_?vRY!*!aR(&7s>fz?{K|Q+7ubEga
zi?DJNB?W<8yVlOfCQhK%(xh;%zS6cNGbWqUKROo9Y%T-6<WgWDEs3+h(!u^DT4_|J
zBU>LjAxA4ZzHET5IFe*rQBf#DN5_1l%+|Sh;6kxdUnN~qWl-oHjzfUjp(q(0IrG)4
zy$>rlpD;NG108dY+81`bY~lg82Dgvsg=7(tF-9<>TM=FzsMo&MDpK0HbtYPw`q9xb
zJcuYj>B{&u(a4dQzP*!*b97l(ZSl%ZRD%?CQHje76gfXP^)F03vy-aoDm!b6lv2wm
zL?Dpsqn3|^LvBqW?WA@~eH9nAhpp2?j=rh}A1&K(M6Fmeg&<cHPBw`?cXmAVN*3|=
z(qR)-bFsn!d;&Aec?|>b!cfL$K2zRI1s~i}?Xb@Nu(2YJz`-XUPn%EJG>uIj!3Hes
zt-<YARS%J^q*|UIRL#xnHb^HWhcXC8_9|*ILUVcWGcyuN$r~E3=t$wYD0fPv!}!xa
z+%z{duu^ld8gU<bNqjbmu3e>~E-};5xxG1_70Xwa8IuWLend3B>R+6n*{u&D;+6QI
z8a>cmF0@P{{8d#lIy~n0sDgq?#g^KJ+J>)^#|QOxr9@GLxEM}Yp`g1gHpEa-`8W<E
zk3CFP4iiQI2yvf1U8?CAOiSaV7MVYElpdn|1QQ@(S~B(72sQ}u%8sGDFuqLkYYYE?
zB&w5>aR!A<owG}&xZ`bA_E?kA=Z2OdUmN{67CIUhrUh+{DWhn`I>K6yaDObcFbZ~d
z_M{R=t{B5Fq-Vwi0-g8bBj4Gmgf4QMW}E!N5;8Ig>>j8@HY^S$%Rsi$S7~%kq3f?-
zCBdSm5*`mBCKR3bT}N1|T`uKnzlr^BN_)?-*f(BtJI>UTX2Y#>!6!_#*~!W1p$;g7
zF$V_+>>L~tUPx--GvpuH>hH|4(N31s)M)z>*0mMltO;3vIn>d=D-z`zsrj+B%CdcQ
z=<NBWo$ft3_eLBMcT06SnCP2AJR2K^@t;p(1?pyIW(EeN6PJOBn*qphQP=1O1CD)e
zMigE8tEuQ@Y0YS%T-;NHk71{<?=sVfqa5G}w;dr+4nm#^oCW@S2rg@Omhu^b^A@0R
zqhLS)TlPP!9}vhnM~wQ={{poTSoZ(^LzlG@N}G&gE5cYb$bj*o#%T~x_EA-f4842X
z<L_X<W(MkxjMf`jw9*x*74-i?$J8myx4dZWbN`|u1fhTX2(paBAs|Uok8Z;M#S~oD
zbQ1zFHI|j)-Xv|p;&SS!1hS$qG&d|vPjfI*`=1f%9yV#rj7XCT%y!3~K>g;lo648u
z&$f50p)JBEHV?|DB_7gupEvXTAZn@3d&V>@B8l3t<TJ~}gmgXsu*8n_4zCi=b$VRT
zt50{)!RM}NgR#+g_oVbHKituH@gnZTPb=GXrc_x!>G$2;-OP-7?51`K>hi#t6ER$v
zVs~A|=yu(_ttYRjWy7B?V_w$-6BIhI(3OMY5KG5xhS^Pj8)+w1q%{&sh(J*(zQl3l
z0N%^yaQoL(;k)kv+6Yr&wSsTa_Y5Ca;JNJmPkOQBT`0Kyo{L!Ak1(+6rKa$4u>U@1
zf^qLs`!vYVORKAgoJ1`-xlz&$&z8kaKAAiF%K83~MQ0?~r;8x4`lNg;AJu8ybPvyO
zC#K>wzwn^PZj3PH$-L+JJVo?Q=hM37lIQ$&oMw|im)}PGgl1Jqfps*tWDgF>TZfF|
zGEn4Z;H0HfI0uS`R3gqt@mC2k4a)a>)DwoR!oA)*$*;7vNJy+%DmBfsmCxoH*2d?5
z@)hhhOLPy8UwvOQ+n9xtqZh7X(Z%=PdN`u?J;&~JJBi-*BW=UPu%bXoBEm!v(`y7?
zK+NX-^;Oeb${oF%(>8OQ!4RE3r%A~6qiRVyp=+cbUHf#H(7Kg@4$dDq6`_qj4>a#T
zHu{OF{Qg`*fliv5pph^?wLX!iosmjR^RN`fEOZ%!*F~(4+SgNu4Y6Dq$8glXem1pY
z1!5Wq=fcKr+Jk{b;nq!wljVM0bOTZ}JU$wxP2=_Ou41FVe?9SjDz&|@EWzuz?{TiC
z)Jfdv{bl@*E4co=allXbh-vdL(-4-^y^>LvpPye-!|G~-$Ip20+u7RM`un#kF;a-s
zSIFC6zkYqp>7C_7LxCWq<ed3ygrO3D(NlyN+8_UVo}P-)0e?+T@(DWb9K>(d*5+8B
zTref4j@^k+;50M{LZJY~X;xm_Hz{U9q;Zt8cPi4B4ZQuj39o|qp|UbElbnj!k{TL1
zDX;(vT1nt0uegl3_#6KP48oXfOa*;-(%h>nS7LaGbMyUgzW(3MzcYjQ9R#lZ8v)P+
z`#w%{`ZBZrC2+!x)1X%qh!J2Mw>|&zKOAngj6Q+735wKM#eexB3N=gFAfa@WFldOD
ze}-}V8#Q?UD_k^FQv4mU=D!^J-}UZHl6s5#3H$iy#;q7}hv`rh^uFCJl%{*$N>qjz
z9{m3MkV(gQGd^bKlW>Yy-iFk7PihHPxld8M)h(x{@}I0LbWRRqJnt$?qA2dk4T?N%
zJZ1+A@uZ~iL!S^0w02M2YfD+DdEcn!7h4e!5SR`|_iRf-0?H3-Y87l7Yil$wWccT#
zt&}?D>K`Zjhyfk1O^3?JG|-A}9TDa$4mM9)&&sV-n==JUX*x+8$5pzWwOq}#_I-7Y
z7+z}10^Z`+BVd-+o3g9|=GM!VOy{pJEUUiFgJTmyJB1Oj=R#b%+%xd?n*&_Bg!1Mj
z95%LBna!(rtH;p0299H9B{8cHV;M91$V28KuR$7kMc59LQV4nLLJcn&n+HAID2>Mq
zT?b>lJ0J!nWt3eg%s~YObRP!NA3Jr5M<M4^K>>PC^UzU-bQfSj|Iy0UCzLsn$v<6m
z6uUaL6LfT(Yqc$Q`VO5giwqjYeCHe6JTo1QTdOav8qG^j21-&@dlla06|cubEFSRs
z-uW$X4{-dMt3G?3UK6;_L1oAQK3w%1$Oa%dL)Zd>F3adhvQR&g-i7SdfRDKTm&<R3
zpMDA<a}cuxv@ppaLbq~M2V4ydorb?FwQp#n{$<F!VlDLeT18}fq<ei0N@@@8ZFjBP
zzC3PZ>UQCz-)-9c{(5?BaZmEhi05}iH+@%luBGQ?y#7Zvj_GxWW%}afPcN=K#IOie
z(A-1Gv2qelK=TW8^Fnu2d~4VE?|ZeOJm(6*!!Lk}pQ@*dtWvR9BBvZDATApJEcUHb
ziZjC7PG5=qKJs-*pp8uGqOC8H<F{$AhU}I$3Dh^=ghEgx65wm=TNknW+6|STB$p8K
z4*RcXpgp8)og*vr(--fjj4}t@XPX^@eXnP}On6fajZ+C2-mhh!iaa?V7kAE2*J<M}
zF{f65K>40R2Fcb*tdTp0kH@zp{t_=COHG;{zteiJ(qs%jCY#M4UxAQl>$c7x)dPR-
z!8kpJR(Bc9f>r&WouvJK6rIG8Q2cee$?&>>|25g3`_6B0$W&Ipqi}3vQ(DScT~_8X
zdDoQ{aMR#ayQo>c)ZXTCK=9grQ!$?bp0d%hAm*Y7M*QPFAd4I)qpWBI<K{E3l+m?z
zp|*3wnPjKeTw6TH?Y_`JoBfAHH#S2k==|*;>_ZF=8p?s8J?P^$!i6CP`i5DaA_cu~
zIPY%YHTB)wgt)nJMHnCvOHW;+ao+a){5<T&Ijj!@;!z`Nlu7-BgoMARr_bLghv(Dc
z;NWZy#SP_&BIFq}W`fGghhm64ELp0{%SV6xLfNLXjUvJSn@?C4nhERmo$aonK+*_8
zE6903{_oo$$pNG2vcv9w0tE#UH%i#}@!xQphXG3zD$)H<xa`h1VI7=tGx|^euKT~r
z3x<sIPl6(4q{4=8dce>6KmB>@m+=s}A9_O9C$&=s#2_<_mq;<IX!S=Uhf%{5M=+k{
z%2?w>g-mCd)r|yS6Oxs1<{R}nBK#vJ9`1j{e@<&fLn;5qGHZ-^Vg8XI^W}devqJ)H
zs0L)f7}`Iq#BcsxEkr8%ze^%0u7d6ZLC9_?Y+HP^zhoIX=kNcBK~Vz-8P7tJpnujL
z_&3WUwEB;j(7&oV_#2M@qYlph5kuJr(TX;NRi6z1k0uEJM@)h-L?IQekO25s3;#7A
zREUcI74!cu`#;<8|KZ&ZCW8>NyZ>7GTD;dkp74LQ=lUrof6rd2h5r}7lL5)wiP46j
z)KW*cK~+`7Ng&V&B)jcW27t(XBi01y6f;C}d?Uvis6N&pQKKJ(p%C8)G)|LEq^65x
zPa77O2<@4GM|kd4lXx<{pN12hcq`wBt_D`tEDk1H<0XTfF1Gj^jepaJ0$}{#0%HxO
z&rmYq18gZHES2Ijg_0oWJPQNT&xF^>Di*rB(o&?(IE1_@SPOi#v0dx=hN@57yb_*E
zA!Ss9e(4gG%bf=D>BMt7>#;1vsn)OnP+3q#Z5chP6st;{oqTM+ak76A9^74CC)1ly
zU(jNZ%ISW=OVKUrb6;iPK601eM6%d-K|`7GbFE3=Zwysv<45hi2oIZx5zAsLLyIM-
z(pvt*{x6i#p3W~p5678bL)di6RPLB5LZmPtel~V^<N+mOJig>4nVv-{Ux%cQ3il>M
zO0v3-#j0*}9q+dC$CQQ5v0E!3dVS61dPB97GM;5{RPP~aj-yDb)$g;|bWCfrp9tg{
zA3h9@L#b%C>1Hf%yq%zn-YKPJfL`-Jb-lfUr*dO8^oD!z_I{+o2~;ha#!Hg?K255Q
z4~)&Of~QXt)af6dF=0OjcLt&W{)U0p){~~ECj=ikkpQvklCJ8KHt;UuT8QZ1GL8c!
zY_P^V)?zDg^>fpWx`PYh=3rqOcg1oJhf}di^(FfUvxp{#GlYo?{pXHKeJR6ceF`a;
z!r5*_xWoZW5-fWY=&UKr$!m`Wu@Bl|qxi}FZ;INLj1caP%fR57st^0^tJPJkQdBrN
zcvK%Up#XIcH;u+2GjP7kZj9^(OioP*o@dUN&eqCIYg^)<p?ATo9t@cxEW@?NW{D>i
zSeIaj((%#oatCW{s<8|ecBaHf|84$}y$9RQepTO93`ltjVP~nz<ZoQBk5)8SR!+?$
z<bpm<a!M8_{e%H%0qHHjf}#2u)6>&~y*&cQU^o;gAjJYU7Xln?*Rj`q@bR#-E1(iu
z6#tw~MW#k3@?)pa%7lz;SS(K3oIMKpc8dvEs~EtNQ#FZ3Ym-*Rjs=j3X;I?6>D@hc
zCJa1}o_>p3Ae+v#@n`VcVtV=<5-p<O)(_3iY;JBA%%6nr6c@uW<*)tOjH8!9O#DLF
zIq=tZAxDXt8D@G0*LHXdA0n>gdyo`e5eOwj)qLX23Z;z&N`_Ezm^p*nYa=ONA$A%Y
z2>=z-<(+GA&1R(G7Q6Y^=Ls-z$R>stTP2wxJbpO{1CT}g66E8ua~l2TQx^%nB@8_p
zQ>(RgnK`_LMlpM7kt{(-j8Hln>L%-m2!c?UDc?41mL|nEke$bDz|E2a18f<qxjchK
zF+$e<{;cR*Zr(sBmEbHbV2MP{8ZucL1Tm9hEA=8WbO87wX0y;?H+FCxLmIzLOUph>
zn=JYDBvUCb9E1z13529o*ns6n6i^-|d4$;9x3rv`1VijT#K=;%kb=7UV&BoGO5H<&
zET0KFfY#IYID0%7eK2AnN8VVjd-uYsN3{FosE!XhiJpE6o3E4rOBKsiceKe~Pm3<I
z;P<Af>xXp;3e|-7&mdgf<ZtQOLv*p@!amj6{R5Qq86K7T&7k(CD6k8Z#dPHLV!P)U
zGC8N*(JJdw{Re3Y2?=j+Z_9Lc7$ARQ|7tod4FOIxe(9L$I3L9EHB3@kdbG;GI&$3?
zZOSNy^Hj&FZ+^A>Y-i6gal_-rCn@cZWeV+c$MZutetkEb9=C{1#0(ofgcu;Md8{~}
zTB*X#6ev|ih*FY`;DQd^^WcZ3%zDe+?50Zoo<eArtOfwAYiesXC>bZL<1rA);9b`-
z#C*OB^ADq}JcOnM_Li8Lhi39h8?u;2vtFuJ3*nQzqd>3hsxRu>VGpA*Gyibo&bfG$
zu<}_}AsUQf=o3Ij$0inL!2&U;+@>aO2rHRX!urpRI#_xJhRcf!@p7^aI-b9X4)9-y
z&VN^V|JD3I7h{kk?|-fR{vSU?drJEJeWC<>2r*kw9V4VxFbaf%!#85Zd=qNS8%t!1
ze<H7s0=Xb4L06Q-j)DamXYB@{QCPdz-o6#LvYqUlF=NGt-1Yef_>olkcV1I4|JyVj
zWTha<(SIXO^#Oh8CD^2CW9C?rPON<ehOy|qtkK0*A`cBJa;R_;>gw2N7~*^A#CIuM
z-$&gNY^Ectc{Dsq#h;c;l{4@SUb_VZ%-;o!SD^G6^ND5@R~mFISU0N5A(H3y^sc4C
zgrI9^=rgC1A>`?@dFH&00a40k6lZ&GMBL$pqw~Z3a}VnPboa7desb@<UPj~WhsxC`
zghj)_iEgCx27240t9>V&gE=SJ>J0!Yqo*PsMbY$#%twzkmDWAZxB8@{q$Deg=&y+u
zL@7%`LbATT?%iQfGL5>zC_`6STH1XshCq_>CEK`kHr4L<>mM)ViT2x0pK&2>@aCnb
zEgA=r@9X+&=k>)jkD=f3LaTwru?P71xxE07^!bm#DhTLo8f!MZyyX}dJZ{g#jRMM7
z9w+wkL@X1fb^QqUydRg}l6-k(areEL@^}{BM(3VYZ!(@=kOFFb!OZ7t1_!SXU)~<r
zuJpVv|L`^Q8tayM@q~Q?)wOzh?uiXSXWrxyA%5vuGs43l4?%kf^!>(xlAd0o&o}$~
z;dWa29?Ws-aTgfxt#w4};9R2?myMtE&A*pm7e`va{^3!vDx~0~?W8cyz{lQ=#@6dN
zetWxeclBbDX_qt)Iyp{GF;3>UjjK8eIyq&-Uij9D_xXM5tr>meWs5ZUmLHAWZE9H;
z+<C1DAGo=EyW;Y0>!khsV57LR2ZrANacU4X6JF{9sAD9u#u=#-{BiVWtrSvAk@M~m
zgr48mfA`zo&K&>wy0_nU5^ya+V}rtRz?H1X^pky%a%&=u0K>8rDdYG$Q{=gdaji(P
zEn|?_Pm`CS>t$whlz~V;Dcfl)Jx<u$Kh56N6^*Vaff5QR;n<!|^2lj@Exbn-{_`8k
zTgaH{O#$@SO|J+`dfQq^nD8<TfbJ^jwumF0^>{0A;$viL1L(EA`Wz2mPP~F2nz}n<
zF1&FO0$FKJ5j>U$n}zkupehX8xB4dN0l`(K$JS!4g`0sW>0jS(18zlDkwtw#!uK25
zuS)^*<?<fMAvgqoSSKHHT3<$7lwTg}Am62+JnZy6u<_g4iP~l6-MK$K1olQ!9eAxz
z;(3-|jnTWOG%wE&-wC=+i@dn^=r4|@zHas=zTDjH{ysHWe(S&RS!Ym0BxJH$u<)sF
zMzS$*$Si`T{osX$B?Dcj$x63b-&}N^5BR=uOmcR8Bc`3O=Kj?pw(G%A+3#_^zC<aa
zIaXx9k7b3AEyizuyu5Qsn5@;7YfOlqgv%5g^cF_S&UU$Vk@J3GG|uOuwX3-;qB~gf
z)aU3XQ&X%b0ndK*c_{!lp!V`o%fWCi{bfU6>%Lr=p+0`0`oyz{?Iur`<sDx2sslD1
zEUD4jG&mJ;ZY=>mrIDwZ>G{d9*|)LQY_ZB=^|9S;C?WIv%KhYJwZgft(>Td@iQMb>
zHU~GUY}dJXtIk|YR+yaj+wmB=!H&23_$A<o3!`18AA6@Xc6-@3zw*PBiNCksoG*U=
zRQzNy93|ej;gj>)4+eYgHr`%xD5ZB-3Y<PP$99~_y(|Yf9NdqsLXbJggZ*{aOHxJL
zueWD_^Pe#Ex$j%)YKP-)OX{-cX=QUj>$2a)xpYye#P`1AL~I!%weA~1mm#-BVzy>I
z?+*|Qc-MZ~6CiZ==l948lY_A1Dg_Hyi#{E!B-X{)DzpFD-Zbe!s?-pG+SC-Bkdni7
zofj3C;jyHHtX|nib1BHcmr2-sNuwab!{l<nre>Pq;oH^L;y<pT^?5s*&)L6r5$~74
zMX1hPY-)~wX@0HWDmMXKAi!F;ha8v9L+1nD0E;yCv(TPhcU){ES)3S-DUNQuI1g?u
zMNcz#Ep&NV#DR%iHr!J69V>!(Y?5HLY)rH5*N-kakYkBc`4o?rUG}3MTIsE?cb7cG
zRQzR4crWd;?Vg;5QVY!tyk}-|nnt|aoVO4y44r;2In^uWq&b~W)yL%|^+aCrbghN_
zy_s4g@F$d9WdF`(LfG8bdn&2T!0S3=dS`%A$^RkVXZJHv(5UZTdWn7O!whZW{oWy|
z*U7rTt|EPUz_0T}<PGHAY*q_fgY_ehcU~LmzKQlD!>R4(OE~MjrF8NVs1hl&OE=j#
zcET2qO*kLqCS5><NIQk$pBD#HP=Q#*HaHViYO}!))w&nf13T5He)YdW;BM`wU**-5
zf0~(IY-0+&wHS35b`yC)Z{h)bTuza0sv&csi<$SlH|sWu+@0-P$px?60$hA0=ZTF<
zft3ua(-+fY(I(^}&_FIbj!qAuRoUY2roq)(r^}scRJwJtMwZ71pSSPQ6F<K`6mcP;
zhLa@??%VL3s6z=a)<#7sg>yO*ngODDb#U(k_mVl&U;O)cJ?U9Je}@G4Bjg!+$pjhl
zLKw$@i~ak=+flO!mtv~W-kFX4vH_n?LHmU#r|BDi<*WY9X&SW7_uTcY+%B9kDy70}
zF!JtoC-aLFb`|?S_FlB6`|j_`F!I?BVju0>wlWq6v4uFj*3IzrSSj>|omSj$Z4B>d
zu!~><E1wT?Y;gTn-)T7S5)2{TET49qWhC%3y=Nd-tABF_B^3|#J66zVC94W6Hlj%?
zo43(woGrqL|NKUNq)Nzogp%6tAaUZmMNL3X27(|o@GUt(X3Q$pz-iwMEbMrp8bl;O
zAuM)kN3UCVH`=drY45*YR?hso8)CI?vC?$cwCG^-V=JR<VBj1pPR|uQ@X)HE6X66H
zDTFH$I>6@2rl(`{I`|Jb)fiiHXW~dA&g%X}Z=MMur}yoW^1|fgx15~Vi9<rci<6a(
zwjVz{4eQ{^&Jv}cVjr$2{F-Jf_`rT`$KP23JU_QGbGD1Ley?<&uA{2%ypYt|31uNg
zdW@)#oXou7upl|Z;u)U$?lXTXhdr>fV;(h-KfMnlHhFlRSCST)udSuU<9?+56bLyj
z#s2%d1;$nUjyi<a_$OTbLbLom#8frHTpJ@kIsEMUw`wetPU4;>`=(%h;+sTWLi)$2
ztJrTCe9=C)gpkZE&sd<)=-@#Xo-2=xx^k=4Ce*;2!f&HJlV<!eF{$$JDp6T{_lCbU
zjydq*DXBd?9ChaMd%m9%F}kD=WA_lp^=tCK?ZlzyEUKP3Az8Y3mvQF=LDMWf*Cmug
zng4pnu-fZhcJpGW$6;)C9CN3sBzWb^kFAHbk;4(8LWj{W%}h)prA&0F4*HJ|^2=Wi
z<ysiN>pAawWdHg}FxaCO)RRd4<VqgmzfBIS2A-Hj1-dVcH%oqjp*@Ln0_z<{M^4-H
zgaNN}MGL*VfZL;kb12ci@nahvyK4YQ?m+XfxjX?i*{fhblNy@c&mH3k0c1Xp9u+z*
z&X>%oZ$#4ql{IEN%4Joij_q(YSS80ZGO<sNoOrX@12-H6o{<8vUEiXV0zzCwT@ajp
z0s{cL77tx+jw|d)&pvj^7hnU0%d-MJwpB-mS6Hpp2ddC3+2vYQdKxDwfarXO&FBbM
zrma5^n7g`p&hKu&Jb9F$zg&5!S?Mx7;uu4^k`Rqf=nnrpnJALkGncaA;d?t58Zk8C
zw|`*M#0#V5Xk+mU_EaRm*=@U3*_}t3?`9^~3(OJKImzj?p@L`de2WPF?rG-Netjg*
za;*{IJex?wk(f3ZSw$rB$-B;Cu}xkWWbN=vaC3)d;uq^7WA9oBa_@dG!bFeg<<8i9
zr}kHI>ECRx9#Z}HF0WqWHm8bcwmuJ+FUWD<-ubU9M)cpgo>#Zue+Tj8wB1&s*49(6
zI{Rj50EwiUUDr?04wbRBlP5}qL`}Csv&3(gyk}FKEj$mdqJKY)#2I!T&L*o+cYS0%
z?QFBR_rD$-;)YSXs$x<!uAeR-wC)Pec)csX{m!Zv5l~}X3O=lb@Hh|G5M0vruRU9<
z9~>RP8XXB~d>zVu92ud~3!5lc&gS0^8D;KTzc7sy_PvQWGP#*?(mD0N)Mztw`mtEm
zbvi7MtKi`=|Do9Nd^D>1G0JSS%3ptdY4o(^GM{g%@*0O(gzDgh<4qY{F8aq{XvL};
z3JW5wTiZ`MDs4s97KYa&#{#R-=?TwA@(vT7#>0>Ax;XIY4PM+!hUT#iIrl3ARzKk@
zm32pv2&{g(*`|8iem%GGSUeu#;eD(3c(8nNB7N9WqUHBIcj)mM#=Y}uSQ<~{YOw8H
z7p{Kec48bo2}qYgaDRT_^w;&V0^eik#HwG#`6HUyk1(e*b)&OFL=pXef^g5wwTl}x
zfIhMpjwVXk%0`o=jsyas2NmVgCJdef`Pk91inRRar{K=>r7!DZ%Ia4QbocAP%)|!;
zrfeIy*mX>`f<F!?BAbJ8+-5kth&zs`;e(~3T!1192%B?~7Fm?80B)<aKnbI3{$T_8
zyWrzCmhPP2)rjs>QHg~c-(5c~8er0U?LW1tg=wzDybXn|s8UA#D472f5m$(|pM{;U
z6o^D2lTYYQqY#HpBTl00BUAt$&Pr<n!F@WIG)mv0$#%CwQ<Y?qK#WvRj<ak31QdZR
zW8RRSIb2w(+!ih)9Qrm%KoM$=!Rli|a@*!6p21V+<=tiMeEY+*MUJ=mZ0i_%A1ro&
zWu@l^vK$%)@FeE*ah907%3*WCp|h+?`&`G(ClxdjvU%9$^^mamviX@YdXSb7AqjQ>
zo^^+X&rhSxR7vRMbFsb0YT?&-bid=?ja2*g`_9EG&oX_Fli&#TL_c=OKWqRkZt@f>
zXM9H0bsaE#^}5$D2fImyo|orzJ*R{TE9X2n_g-aiyxs(Oth{)(xg9xe%B3#3-^YOU
z+mND%ve;!^Z^MJgfOCFMIv^S|mkd>F_Um81vd{iCl-%cb*#kOo*}nNxrKc(}q;S*H
z(t@z4qv_7bmsn~Wb<TCu?3gjZd_Lkz-X@<_om4(IApVl2VHRZOkvlz?lO^zi_41Ou
zZyBa@BK~$(c$YuCkBAYP7E;lkbVYDkf@nf!b|8yPvs-A6r$oy<rW8I$boaA=rv2(_
ztNo}yq~WHngj<HHM0sR9N0axu-&C!jfEq6;%lWAxoYn6k+N(Bt70p=7z-RN%kJ8eR
zt*71!gz^ZsLF}C^${|VRG`<zea1~gN7ytVRuk#40FT%`p3_?^+Js9=ji&o)Ebfmic
zc5`<!+47v9^_|bTHnC9We*DV6N}^2^rehJIV4B6oO%&mxU|M-Nbg<LZnB8|haOF=i
z<BQ$ojWxy>4+nvSgoGj@BJQ9h5J-YwUS59w{0X78zviNeszBgjP(nh&>i({5$HcPR
z0M>V~;MGYT<N|;6%@meoZC+lFN$r`SL*pm9BEgAzMhL47VPWOu<<Fr*AtiQla<Z3~
zm*52SIICdpYFi^!zrHtE7jJoV-}B`RU-a)~5W*LVZGTh=2*q+HVuSy3GvwV7Bt-nz
z9m%l&5=fKPB87m`^j&)Ex>kq5`K;~3!?VY#Zlf9a<*hr4yH@-CAiwvIIMTmZGwNUS
zh7tc+E%;L|c1L;D_hGZTv-1`d_1&+;>FhA)WdzTlf_SCl*s}6vr|lp<<?bzn&4y4#
zd*9ZXh9y#q>MGuJk7(umnK^)~y}yw*aJUI-Hh-3XZ8=|N5&}A#?E_5I5+MZ_OXvN<
zGuW5$4QHj-YkFK0bT>$AwH!Cm!TaLSV^!OES5lf$x7N3-!t%2=GSqgTZq;K`UAf0&
z9ZT0L3Lwy_*Xk~TY*{7gVd!#IJ5+6dDduoJWa#^U@b%VVZAIO>Z-8P2T8e9_;O_1f
zin~jY0>xc}m(t?Jo!}CzxP$<O0>#~}xCFOgft&W*d!KvGeeQYq3tM^C%AA?w9pfFp
zaW{^kJ1h#X8G-l$I&^9e$7@w2@42=st7_3cP)iz~_P;?aA^+g1-d|+$4NI;8727mJ
zDy@%@y<@#JjWuSb?Kf2q7u1{?VwS6KMk>*QMzWi|?ps9=;>cull-iU+uB~^+-k<$a
zbh-_IPcNv79YzEqLDICtW;EiYv$b3iAz;pbauF4mq_qSCf~FBmnqX~2`Q6@<*f1CM
zalqAXilrr-OsejQy=CMw)NL&JFzculSfAhGv#_Sj+v>Bj{s24B4?0k7)g~+O4Z{Ro
zd&R=)Ebn~e4yk=(%!vHJQl7Wg$T-aiVyIBXe5)ljK+E1pSAEH-`ewbjZPp+8Ms-MD
zKz_L8VHs4*_Yftvy?fYnz1!1r(YWGku`Kd**`t3}t`b_>$x;z;c^T_f76|=QH*Ud5
zrXsw1WKE;ryms&qVBoRz_d2n&w-{4Qhb=BHx*PeC<XNDb&?B&foBEgIJ3B7!l{Rm<
zSkhbj+Yy-1B_oZS-$(ctrbP*41fIX4XW+3}Zxx-y-&$Z8Evll%Jv&boxL1Fuy5jHh
zTH<1nIE6EyrC%=grWY@5Fdjr#CA?M8t^kA~{b1sb_aeQ<G>EmKr?W+z!VV$udoh!2
zciHzg5z7sBQ%gde=~o?jpskMtj`|~RODp1__2Px$rjr|Iz~h=eRMXzE8LwFcBZn}Q
zd$klB>}`<}ozR+Qy&Q1ZcNQahRFx+AX0FAU9q4|D`z1j|f`#SXTx&DOOP-_jz?Gyl
z3fhEtsuaENw)EZWu~&93Yno3bPi`)YB&1Z~B`d2U$k{U{vh9LjRDv7_BJe?!JN9%0
zYCc><kfbq6?XxIAp5->VxL7{mD0b5HT6Jic{k#9q)em?7jt@RmMZ`EcY^(F#R^k?R
zwqKyvfaQaK%i2%SLgv;)QLORzY0%69JhtUH?&Jbd<+y9?Y}B`Lm!B+gUsY$*3-%8f
z%X(_x4|Y#~lJ3-Wj=q^1xG2dqw0n;6+fX;4xxP=HU%=)5`e|0$=?+07KN=4D%;G0I
zhlRVbTgBGaV1eGdvoG7jN+mw0=~XWm=WFvJ7387=I(1CgcoA;czgniE(QYqKm#KK9
zgr>P5ths;}$G;ACFEOOw4%UxIA!asi-aXvKur^pK>OOkG%9DY#I^%@`&)F1)h0l8J
z1Z`eac{|z3I8sfK;GsR2R@Y|80Wjz7)AjUnSfDCz{H=0ZKPgbPu4w`QfZleiPiUAU
zJ<dV-dO%x_gvRX&fS%6frmxpBn(GN2Xuclrv8oEzhv7c)v(5xp-X5#&Sm=IKngwI`
z&kkul;r87wY^y=>`x9LuKu0<PsNVtue)~4aJ}7pvSIjjGZ$^w&ovDcS&RiW7&MYQ~
zZ~nUb<koe`MfTihuuKeNX2t&zbIui&la$A@%fq}UQXr5{%;&x$g{J+giZ~W#+1I&n
zn3iM~)vp@)2M3^(E>+cmSd}98H-`CNSL4O#w=RLYkiGH2H(o$*C*73QY0y!014o9W
z*)WDGrx>zLx7dp-P10tM_bl_aD!XT|b37qmAK>q<Ve3Z%$PgD4dG!tfmwWn8$TXr7
zxw;d=$8n7<Exv=PJnbWCk7!E9Pn>)%Q%7J`E1sI^C)n1s(g7a&{Or`%HhIi~LPCb@
zWLYXqI3Xrg))Zl86e#<Son2tNfC8cH*OdS9RvCHxsX6y*^||cO|MeYoo@I@hAE<>+
zpxA%SaW;)s2Ku)>Priqg!kLh(ie%61rsJm7jT*wJ!mMib)e}dF)c&Iug}a=8*K9PV
z<H=d7f`<Y=mDyZnK7k5xU$sY!2$-HhUb_PRX{Xs${I1-Aao`+x!SMWpk%-s)U~}=^
zMGa)w-<a3>EFFH|90jm%dT1-$tiY}xY9xEO-5fzIEg3c2U1vS`L{ZNDRr5cXmi|_1
z&&!^&pjzK69RWf2!<RXE=p{p0j`En_{f!->J>}7Y?zfhMO3;`OB$kxxp8&oiV@$jV
z0U;O-Xx-vRi=bs+>%K+rlkD3zn#FSF>v;oz0HFlPH8b2z^wttE2dDkih#@WQzF;IX
zDh_W0wmE_-fEc46V@DPi)Td^rFjdrU(E#+InM-9hwthGU>;_5x!5uLb*l0gDJ^$o!
zPE(6u#f=p*+4nIZeZK*OJrAD_05Zx4ZyCd9wCa&XBL9;2VN3S}Z(6540HK6os{qsP
zJUoL~pWU81V{2N_LtxtqRohy#^-93I%)1`Dhlr;0a=s#omUAkz>n=L`9ld<X#?9u_
zg{phi?ZKlJsiR88=Tes|Lc?j2*wRxApT9RB)lg#NV?F`Q>jqA1?%f`TU&t9>=G1Qm
z4*)OxZl)#{z)huIJ=*g^RWRK#vVoR-m6q%3+8)Wk+iv(x;co9@YQN#Te9VIE;s=*q
zEN%@sFiGIBDeDj2cK=Q7qpR}$s{}4O;vx37O-PdD&y}*lwm<QPBW%s98*IN8`5%U-
zT6QPQAMFls89w(v8cOJ4yz>ly2zn~<bMgzJ=toq`bMAnKJ{g+n;{J6N2Pd^q;lw`c
zf(fk8a9vqyEl)e6jTvYn&0e_)XXDUN_Uo^Ux^{xq*0<(P6(8K&T8m61bXfPu0hqzd
z-rb6A<ugvAW-H0Tc*-p2=MA_#xV|z5P!DBwWU}aQy?R?Xc}CQXieZ3t<k=KL>Vs>5
z*RNft1NLb9Qx?r(|C_BZ`c5m=+16&gVNS_dy?)m}-$bv#Zm+0m_m&%vVIY%fW!Toz
zR~4+F8dbX6PcL={V!@Y5{_eXDiVbwgA0z9?0fMK`-$<qV9ZnZ6WM{yItLyWL18OHP
z^7o$q+s5Jr073k~BGhs%w<%__hpzW6Ewh>2{DIjy?Hpf%-N!tbb|pm+zy+1|KXYqb
zhkg|k0?1I!ts(Kf>n|yc_nWA^+JNXmx$4$nW(pD3(TeAV&`(@8DeoM$r+{>NOl?4P
z?juwMGUw`oB`__$=Ai3##X;;L4fC3A#iz|~wRw*J1!W#Co~Zye?iGfK-E`{OB0J!_
z%os`cx@#?2{u2QDbJ|US^fLwkt4|5%E77_$llDhjIIn|Ltf#0$o`Y$~4aGTDNJw5)
zgt6cPlv4ZQfnBv^|2e{kxoJ90?II&T(1|S{xePGTfc$)cZ@B%;%!CufeC(MfBrfXm
zPshcge(t>Hjs7BXO$M^_+m8zWGN=4R#A3_nhf~18&<w<&|ET4rM@W(xV>G+@@~&6X
z;m00}B|YE|&WB3r`*691+r501EYN&w>dnm|p4H~t!Dds}oXxGkMfY7&uRXHiw0Kg6
zYl#RYG(ZW>$KM4uXI*yfB8YUm`-{c3C$PBB!G`yqt8&_>n27B0tD6g5<J%EADFaPj
zcwIQsG6lJ!th@5?!()1PBEbi`@*H4l*)H1(cmXZlc_6@h@h_nEM5V@D1fnt2NDA}v
z%<ryF0HaH@qtta#Y!MESIl^z*dL$h9=YoQs*o?7khc=Eo7jj7??}F^BO3GrDGl=p%
zXQs{zRatnx#n5KxOu75`oBXC0bDK_#I!#h6tfNfOER5D}>s!}Y77ma(PG{nhg5=o4
zdp26-Pr^EqhmhCAyc}5XT_*jG#}H56^prBuk~%$}6sZ5&yWN|X1Fe+deOplYR^VX1
z&VFdPU=6oa9d|wA^)!buxsZ>FN@8W<-MZ7XJA;aW^IBc&ea{j&us%w4NaVU;y_4VR
zVtQ+^)FM=RB^k?QFEufE$q+UsV#71NVt$ULJ3;tJrg&oa!uPL-C68H0TU$Am8%@d-
zC-;q-p<zZ+5^29C%FUA5f)X_W`3#W-mFZ%flIvxcyG|S+Tch~HV`>R?5^5?cb~3z?
zGo7*|js7$7ftsJDKZ=Tq>gq`Tb0vNKw3L+IGx0zC(HJ+%hK91{%Sf=J&-cxz>%^G<
zQ8b^KP!<NC_7keGx1*Hz^#2mPdc$kQcrVY{p0Wf@@COt*QdBC7h*7nBAHh_UD|ekA
zS}+<XPsVNsZp2T2(@Fg2jr3MLRkIvBu5T#F&U$L(V)t2+_tneyAK2tM@ukikY+zhc
z)h|J(`?K5u8%zQJmN|Ll-vkcp04tze?`|cU!;vt<(PyWgk<J@313NzUaB|v1J8p9s
zu%OPk`%~$2f1!H_+v|EEy$<mrhXJtwY`_3(>lCrN(yEm}7|Z>Js-*W>Qt>^=$jtjk
z<LO0XyYJeVq16b?)-93_AQ*T*$<v#C`uo=KE$}Q4zJkEuukb~bA{x*;ATyG)Q}Y+y
z#9m<U$<FQRx)2lW^6moi7B6<#&g8m^@L9;v0Y=8ML0#Jzng-nAX}iHTy4Mt>a6re&
zxYoVT4q@aEw~%;lGZ*<Z%X_19M)wFS2vSHFaJiY$m@Ng5zy>1Fg67*dZWOnaL~nwN
zbum7GId6LJG&zyZcDMI$#+tUS-Bi*&_k2>Ouyee6BQ#@-o%g=XIP4#P-ZQE{M|!1*
z`^@Wax3#qHUo2FKUMJQzdSE@(TlyF2vHw@3H%0IW(9z&JX05%%))w#pBzJ@({I2F^
z7QE~OE>`S*>Rb+DdvVM!8s86pg|gYsd$u*mhX~Pm@AZj+i+>!HB0L{yy{yZUcDnEa
zw|frXS;VAD1P(cd<MNxh4M-T<Fd6f>A&_jWi)HtqT|4UG_KgBk#rxY~1QI3&T%-tX
zd~R_5>tMw82Xao;v)&O1z1rm>H$wadS``Q9sX>?{>{VE<w;dWsl+2!AA1S<>zZonh
zl_+aR{uz#Jn9l_JooM?gtFE`CJijeD=~NuCyS{91gh6k{?Ku4&z}rWYIUuAW;_kMP
z*s-bcI%CAE&Rqhu!Vw9z$o57y<Bg=(t);mgLB6%FbIE%xU4Dvo80r6pVF}KDK<M@Y
zk^AcpEgY4Bn+!sdKBrQ2P>bNz{<0&R`s+3W*OlA)PE^w4egrqrZ7b7HOJz16;fM(c
z`CAoo0yxP(M|~WZo!136N%<qXmCx(WRBwDwCZ+-oN&;KI_q7I$tdsU;`&Hge8FKOe
zE<76+Im~M!cWP@7oDZ2`Y&vZBKPey{kJLQR<?W&+RB1atY}Da|9dhx}1+JY1sQ^VU
z^W=t8bwtg4BfeD3k9S|PK8dY;!Qi1}K7Uo40BqX~SeSgR3f^dbi0LkrV;mM+olO|w
zFo5pdBY;(a7z>I&LHsl2hA@Zx!5(;PWuE5!>g{Ph`Aj4e*lW$JN=kQAyLV7Rg`862
zVec!`$6pP)y2N99bt1%89Ne}!P0j5~my72-wTyCwKVlkgTt{qrGj$EVr%_Z?-4qFl
zmt0&Wilnh@!HhT3=N&%Eo@nDKOt_9`LZ?fK6=E}`Jnw*9%1@i9_NeQ4dNTt~NbwXE
zxSBq7_K~wQXQ@4w@o`$~{o6v*h3Y&&<t=h4!{X)&uh%r`_8r^ytBbuP+<|3m`*pkB
zc;mN+0idps$meNl4;_2SZLee5(lXosEHE7^WcV)XZ<9a3e=7T|tMYes)Ks<YU!YW~
zI%vigw`Ayuw?NJ%zUUegpjMZo`jJmjDfz?Fl@IyK!w&6wZ*R<il;?HAgF>47elvN>
z;zh^JAdg&z@H(!p6lh?MWrV|blBrtUIcoO4KQMb|>TwUbTvIDj2Y$tKp61o>1-$un
zR{!AhW7$fw;nzMQ+$sqmtz^|^|1H&HzI#O6Sy2!>4-35vy+o#aByF9zX4Xm2pAQ8;
zVqma_=yQkBx@=`Vy}ymvz$vsvHo_sI<9rd~VtbP12MM2L+<GW14gHlZIvNhn1SRCZ
zMer-25o1I^T9#_Ca#&vlxp(|m#3RD{v<Gz}*pJ}9AriQqG~6N|8GfQF2~WrD?!6-g
zXvB)I*Act+lIttnyCOT+5)x3nExrfezS8D227TQ1N?|*dzR8a}r4JiZjg1Woa#>z*
zp6~;PZeq!$xVzbkGp*5WrI<%SKYrJdV32#AXL)6sHeC<Sxs5dWJLD(or$5XnstgUW
z_9-#LPPyEAMh1_C%G(c{^6!tPXtzxQzl4)&SanmG6U73Z&mrV=cTKHd$nA7ye8@BX
zx9`?`M3O^mD<$);uG)D3WAe=`aWsHIiES|Xa~tu1!wo*J_6GSc1$l$1%oqUW0j0RP
zRO-VPp`Xp>TLnH(B`$_|8rywrf7NKlrhCjsS6%a4E%b~?8P*Ee+~}(s2TYzZ4T+tE
z4BYam`s~lkKQ-px{tZugSWy-t-|C?+WHj_PjqWKg$EOW?`I6JY_2Z}WzXl_!|A{`d
z>;EGLyXs|7RrJW0NXqw4&M%q&znU-qpXP)8Z<^2D+e!Z3Et~kSDfZluMgu?{CS^(S
z_h-rfRT=x6$d2PDS8+SPY-$ZwPx<fK*FXKXYDWQC5qEpI>r1fCc3qWATK*i^d{*DP
za&xzk4PF5PP^Bzw*rz@i8}z-AN9^B^B<|-L+#X1yB>(_P>mZ|#sYWek6#w{zkC-7f
z7Ck1wK3XC`9aC){)Ix1X19)*uD^d9ZaCO_Vw3cn*eu0uF)vZU(Rl0r`{rR;M7dcn7
zPgFH8rjK-VzOe#G4?I;>HI=&$JpnuA24@%J^%9<eJN3~?q?>TTNkI=E26RFS=W9U6
z(Y}|rCEyt9z}9Bm($ZS*KOkqF$@|a_)GC#|`_)Rhi-jp|S2o|`K6jdpGJ;A%m*|{z
z?C%<Cy2)+;b^ENhj@NsfGf&6e0+BsV$(&0|%Xomw%H$*<*OJx@1|WUIO%&;HvB}oJ
z{{iix@?wD1@HXtj%)iWzkP*rk|6dw!g1nCA>@>QRG*IHQ?V)_$O8@@O?WmO~^ZX_r
z`ic_?r<}O2J*R6SecImMW>Imon7lpU)V>!toL08{u&|WEA$k}`y}j`kFxp?Sa^(7s
z3v~BPKxA{Ajgvr-<6&TmYlEa%r*c+w^&C~-VOR(28qegu1-th6w6s(mnVddbH3tW9
zoOaJ-@65Gs9DZF<jjnavJIDf4Hf+{5E-xnEPQq&21J;+P^Tevaw(Yy|Wws&7`z*!a
zWP?Uq%WLVo2tKCg&1UeHKKZi{!v}w)n}@pZ0*J1{?@u>29N2ug%dup`Ge09B4-Pm<
zcUgxvieI&q7M!=%#s6})+tID`-`*`-@t!DG6y2@KFu%Sxygw3^BA=)TIBry=Yccg3
zqTH5B(aBV6Ht)I$pL<`ADC_y<wTyzLw60ncNmc&c1|}#Ae+zq(<uibSHJ4t!H{1(|
zVxKNFYCBxjOeeT(bW1?nXRBMI2oRNe!0Y~+^sBnG+SpGZklQu+0ov?^_VuL@DB-&N
z>YEx7ev7>pzLhG~%GH6~Q%RlS9h*SleFZ|Y`7S?W+W#z9SJUCZY#ZoyG!@8lk8%q?
zcUiY{YJb>zW;9d=4!j&=E8EUO99gHdI=f#g0in8&`zswu0YNwZnWbAuF(Jw#|J%9V
zk(JAtG-7M8>v?A2l9zJ4KD>U8Hm1_+@OrIIj0|=?ygfG`BPZoxA%U^gYC#9G+Kn@-
zD;p`pq7uV4!c%E>*NO2sa@udQJ7HVrGPvtwqBH*C+#e=HhWG-$p9VQex~L3WSKUK3
z*KVM%9h=Thgetkp%}?q4ZLZPr7RHty2L3CXv-w*b)#q{3*MbJ%MZKj>$V(<KP^Is6
zJ_5DLmKFk0yh(BWtMf&%0hA0)s|GGN7fcAOhbC+fiQimXaLS7#Q8IKy<X~TQTM3*%
zgZ0ytP+Fa!dcrExdB3kXGhliHvLv?n)>?T)W$bei-s^H%f$(UKw73M6yKCTP76%JZ
zPL?&Y{=M`ge;Pmw=Nr`<Z5hja9{}Po%&|86L;T>03ur}r4qK}L5X!**^cVHVrr*qb
zL1Y!=t?}jki&6Qp*lMq|@^?;)=mL9->7<(P58Z}aH~azL(W!z+)JR{l)*ZegxI&uI
z69H0xe|Ue1t<53oVB1D1tf;Ve^#x!aYGt}JGSs1k==@vFZ$i1}U*b132;0r4p2&c8
zB?4BfDH|C3eC>n3^reY6L>{F1&WB{4t0YiJNOh@wPar?ESNxVCS^c7Riotp?^(lts
zL(|oGQgna#Hh8509#`hrikuS?Q@Oq^jf<G9U%wDLYQBh21gCQ!EOM*p+(_h+Jo?bO
z+2q1y?A6uo*s_tNg2XJ&60mT+QdBkZJkt(*C^vV|ix7~I)jhkeNLle5$$%R?Vi3MO
zhfZWjiEQ^jKsT#L5|6d;W^R91j4bTSDB}^mx!g_J;A}Z87jtYqT}c0ia*J%bC<er0
z2YK6!n!XZP@ju;2a1yhq7;6@ts=sg|H_>|*1v);Tkb>Sr>?&b<pQlLqh9wr3&(5`l
z7F|}5D=K0a^CUgb>aLlC_7U;{*nst^JLyTV>K*%lE6u-V#V*VLqxkm`cZ|OR3Ke_#
z5-muP4m7@B%9mi?*$d{jIL*}Oc|V=5<9e4_`cA&Ok60yB#74!aJh<_#iWJDq#>`CC
zeNSI*h?O&HorU^2DL5@H?Rz4hhf;FIjO6Xr*+_bZ`BC|eckN;8dd+KBa--Y8GxuMq
zLJUl7916Yh=ag;<?vSsICLTi`-MG)L8Tfe18Qs=W-71^hWp(^qRXk;CVpP*T7N)jI
z3K;ZW$8U{1f9;Drq5QJWm>4y}g*)-d(`I)zByTWuw$<hAw2K5=Ui7vnFeY+RZgb1h
z+VU$kL7I<G+FYscdk=hJJ|?c#{X62pP=ZML->O4O8Iqv)t$kh8k9(5IwxY5GU#^TD
zrMm2=k!K6WtiF!0{>acBmSN7@yJgj5poF@PzCH`11VWP`Wny=7*FAS1h5YQ|{_Ca%
zfk4E>#Q&-7A(6<qxVT*LFL*MvL3zw5!(4lJ{5uSf0mpzz#A#&l^PYUB2=g~@K6jfx
zd-PIVJoEpqrt!NlZVn6#)tlwo@77kOg8n8k{;q$$f9wC2DlBmRZ<UII-P%QuP`3T_
zZ_amnFU)LCrE9AmSW*5^8~wj(fT62)4rA#x7e{R~CrnCre_K}hTmN|*{z+r+>oJ0V
z(m3FF>Yp^0d^na`S)L^L<B#0x739C^Fh0AB??xD1n-S)m+<ImEw&MeITF)<sIcJuC
zPP>I-;&3)2=3mEVdW|T8&-on#9-?)TfQ7c(Kld|&7#&-x$@a4bm)+Y=;@*hsNXhaP
zU$48B@LnU|g?6!b-){}u0uWO(;P%UciIJ<;R%!s%Ok3d3RuQ}yXyKURExhgic8)32
zYX<J=&<;a1NIX<&S`B4h50b+HiQ9)zm!5qe1ne>khg+@wbV*gx=jx_*_<jbDTE{<N
zILhW}>t+4Tf-d6UxxW6-x-*HAvA;X^-hp*Is;+K6LpfP%eI)Pp;isn@Rg$e_H~rbj
z<H~m#p#GKnA6B}?y_GY93ddWYRV6&O-AEcZeA~rK_GA~vP{sv}oD9#?q=z=76HpS-
zcX(Lor0ZAh+jx25zwO_0e&ASo)ZD%Dj_T%l^AXUz|2k!8eOU4+<Vy2CdGrz)m<>`L
zH;O!JYl=_v?rgoAA%k(XG=gseRfl2gW7go7o_Xj^O~#>;p0|(d47QNCPJ>r({kv`8
zc`|6awyM>+f1@=P+_V-MHj7ve7;nD&8Q3=S79_NMGMX1(TN!J7yEcS4Xu8i;Z1=X;
zc33zDPW^4i{xoZb3T{4ERJau1ciqm3aoJA}HytNdkxOZB&cxjGM$YZWL+_zyO_~oy
zD5K0-^mx<jVUf$cD{`mS#=x5~Yo*gg5PTp(^*6J^*wGxx8=NlmS)EGX_OU(#O7o%A
zR67>^i@kQ}`n_c7H_-0ASQByOi1lJJN>lH5UWZf_Rz;89VAuW1+rOi!_R9Hm=#v8U
zJzVUprhGfo1hPwYT=kJt>hDvSw1-`~hQ(#Bj`dBf4S^Eg-wHJhKR`Fmd79sa^V}4L
zMNsPAONjXFmojBdwz(Qhb!{ULfW1oT?piKu*Ir=0fXlj_k`J3gso(#p>>pjI&PYp}
zPhn;shnvJ*#%={TQtqwQH{T!{MY>e8bll(iKERIb^_*ARdxa$Hikh8%@>no!(_JrV
zdKD{+91fmE90qv19flGQjkcdhj<mpD6_>J)oICi#uNkH^t&$(N)=Clj?2Qdtb1f$a
zARXksR6kup49_v8e1OnkQK<unYVqU9{O3c(4x8X>`Mqp1>ZAhCrL{M6s6PB=srG5V
zt*IG+d)CCo;ieh*U6$J&`rTC(TPsu+jYt}7nG<iPz5)k2Z3fk@93)woyY{ajbueb;
zFTmZ2QH^RqVRZniM5j)IrlmXu`0Zr;pUh3vR}v*-DO6DnAU(OS>1539siNaOJ~#7R
zVymegU3xDrPy|_UH{SUpzJ2kB^M0v3Kwd<D+sN0~WNWrObewG@Ta%Xo*Oy8%5Q#KC
z__?#VvEfoQ8-l5MZmhd}rKEs%y)!{D#}}Kyi-2HWhu1P$()e#)bdTZl7`SPe`#kO_
zY`Z(n8Zc?`9}c<Z3atN0NS>jc*oj8L?m{Wg^DIsi488pY9hN$2N^ttoI|BNXi`NEy
zxZ1^gxH;{2RDpxm^MwqT?v$%q)mp9k;?81?T5I+)GafYe1Iygk#xl;CBz!G-@?!_0
zq8|nA43-z*@Ri(@i^%()9S36lZwidgrwrAt8%6o~jSJ3Ob$dt020eDsEEU2>Fq07!
z=$Si@d3t*Kp3E-sMd&^L|G-Mzrh*5?O}Rg?Xiu4C1j^x{<&fZ9%S_!StPB&52JGG9
zyaY8q+v`Rikx|NG0aYku1#WKfY5&5eJ*096jMIx)B3?zj3PAOwe)aqKJc`GIR{B$f
zjE|4VlkQv;Ynr6{CyF+PUzn(2%TMLvjQT4qaJ;ztZcy2;zrE5S|9_ByD?B^Rn|5v6
zZzRs%e!(zcp-D>DW=eox2;uRpKia|ffQFIvog*(_e<IABbdqC`e_p|Tx_(Idp8G6D
z-WoN<4xRHAI=0Zn$dSt>LJTGuhpxtod1q3^T$+Bl5FOC5>VEq<0BmR4v2}_Sc6RUx
zg^Z2Y&u$M}v2gPZJi4taEfPLJ%A~CUxkQbg_J8L2e|w60cU~BRri%K9>n0!d*crln
ziQg6(5Zq!F=jXMyE~R8s4FCWo9)>9%qZ^6L$a}+`%EkKHrL1HsuVYnJb?OGc#sF(*
z?CF@5&D6N%6i3#D00ArUb2{QnJ}1b;AwLCyR1%(N<=h`MO{dMC3J&APt0;nT;5BxU
z8N3nh<>{?0D5_)(bJzE9lk->pjGr7j`(x$P9krmt{)=C8O;CuR9F!(GgXRL>z~qPw
z*xh<>kV;ALBH;GEmsZlk*Yy{dPhlRj30Spwf_CxV>9&D~BICK8sPjtK_L*YM3!JX{
z@8Kic38dOD#=|_|Zxs#fDOB2JzvgCVXP1<ejQT#idiD^``o$IkAp*S6%6(jz(+q9Y
zt(Vptyjru5$puj1jjpJ#Ois^CRP`|Ji#_f;%!Y);1P|*72!gS9j!LRfG&Phr>f7iI
zhLUS}eMKn;yWp4-`V(-uO<wP|yKvgzU1loxORdLpOvQ|93?e^&xDAPN`uCR>?&jD)
z^3a%-p`MrClXW2>1vqX_)?Wv9UBeX&OsY-GuKccJP^T(ho`*3^5d3RnV~ZK);gNN@
zbKaTxR>G13Aj!$mw@w!SD$s9I=MG7lbWy|8@<M2#yxAaQK|G!WtV>k3jrPIa)i$K4
zfIii;!g!!SN!&wrYZ<AY!RF-&-JEO<*<e-#>XzlNtWGs;gnD~9WvqNxizl|TJ954f
z_vA`QqM939c8pQ!S5e$|Se#nij#TIyRF2t&?>UPua;huzvwx`DGhQO_Fh0C*%PtuV
zN&Q7HZ#GoQb6ZogUr|+7>+{Joz$G)urp)Pr4b4l9nRQs;1hkB<8fa+jkImCfLbkbs
z$QJ&c*WRArk9kcd=a#UPlra3M#-cZ73Bt+CB_y`kalt>ue<Avc=<M-$!1u`v)|twR
zy;RYos}Q~1w!HCNiqnY5S5cq_>hsH)DZvQ(a&Nzv+wcYbxld6_LnHF$%w?!*RW#J|
zoULcEbrI+F%!1Lv<oY*-;jowkYHHZJ)i9TQBYF^#vxn!U?=JvOHP3q|x35f%AC(HS
zckN5;4n4XpH#dLDo!1Low21$rNl78m0h&CkqmSuRUPojqV|rCSwDyq;+THNe{*X}i
zFaRfKiZN=Cm$O!R4z!%NE`~Z6K?{dg$uWpBbTgf{5COxVV<P(JUpNg74Mdx^ayY;O
z#+WqVscY^gm%2Jy{l0dnPrLBm1cOk5uCX8sZ8__KEeA2dq@)G(4!&#;c;nT%+0V=V
z`Xu8QKQeQ?7NCNO+HOVMb7hB(gr=tOWZq&03gxkH%bTB!4RtCaxf>Fl=1>+@D5THQ
z%kkdRCVy#e!N7Rtz_DamU1w}_uVTeuq5*MlO_U{QwG|c45~mak9{Meh4KSt9`D5T|
z&td2Fl^T6v+VMi6?Q)5FX8+KYz}<nfY7(C@&jN*KZ!Gie+KQIxq4-obuQqM}WV>u&
z+H=;Q{Y{W_-<JeyWmc7_2lc(vB!}gF`qo)}sEuyI#6-2<l#X1GkSplPsCub|)o^Mm
z)sQDh-q&&K&wbqi`@;MlzR<UY8HbZ^Z87sh)Sg~9Mh;+qXywXL*-~=_P;(FBWnZ!P
z<Vjt*Ud!}>+tG4!g;0*VDF<VrFI)xKF{2H&@$mS%FjiaGYA~@+-KZ0kouH={BJ2A8
z{#P2G>v|{l2=ktoLnZu-GCZ(rzG65BbarzgkcELUq@Cn2?0;ZH8f8XixZZHUQTbC=
z$NF1jgEy5Z2JHnhZj4M>J1L09szG?(4q^zp!>BLo_pD|tI}CjMQi3qcYSgX3_h4R>
zX+RMMpRtd_g0J@<D0}u%5f|p)pAIefzqMO|6}By5p!c4Hz=~R1n3zS<8~5$qFQ+Q!
z4SuGUiw6H-@7jF?a~TQGr`XYJGhYu{0oIyn&sD~l0yTY%5z=ReL(l~!#v<3QdBNg#
z8+gyDF)d@H<4jnzgG^hM+4gY5J?!>_d%5}_0^e*4q`%;HPzBWHwt?&gFD{?D*LF-l
zV<7hr|2eN{WM$h{)<XIL2uQ)swP3GFQQz*feraHx<F$F}A(&EJXl__0qzARL)0KAf
z)Nv?t=*B>&via+HloEK)ZpW?n>eXuwvS310uZf_KX&MINE=EOV^(h)J(kEx;9lt41
z19=67rd}Mu2pJX(S|o~C5*Rm%ttqtwfr<${tPXywv+?c;IGKR9n;60O+|B#O6~@_<
zt#8##PoK#}DJxr{FaInQqX=8q@3c*q4I;l}=)Q@$+z63>S2z)sS+;U8_F;Czg_tR3
zfIhDzHarq1w(mo@xg`T?GY+mLwl(N*y!KKWD^Q}HajeA%9=#o|p?N9gz0!R+eTf#J
zvHQ!$V*KvXF(rk5lT10yz<eu}?(ivc_5KlDY@P^ZG)q$9!!yZPs0c2sbKh&?(LZq+
zE7Y`RIE@%619YimiWPG+jKyd2III;ohc#ujahIV6H2~GdN+2OVYqPisz1D782M!MS
zql5DAEY8Zu0B8VH{cO5@i^#(UL6DV>&2B+F_wwA_fuP*`A#qnn&nEeJzt2$1(X)>5
zyaEjuXLY}K=23mSlnr~)Q<5(wM3OZvhfN=;edJ+gb9LK1EZON~vB2Xc4ls%}AR^8u
zPSCKp7R>++PKFa(seJeMAC{oD>Uv#%*k+<n^f9FZS_M3T+y~{!%Y^-)xe|l6AoB_y
zF+@X#NT=e|uQhwNio4%^`SPy2hrXyM9dSuNms&T-l7Q;qIqNHQW87x^#tBliGt@E&
z*lm*6f7Y_>Np10jT5S7w6mvsat)lun{bc{sKlS{^dPX0OG+d1eB$?kvQwlj~nB-C6
z19<d;OBB=+KSvat^6VCB7Hu<8{_4mcEIapV@U$zmU_zm*D_WpgoKzWc0xmb@8_p)K
zB2XywvkZ_sM??GXs>5|g4L0~hVf%}S82CLcIU|d*$O26dU4}sV)HfJY0avX*Z7N4r
zAjc$Dbk^Gvw~ISosTAlQnRv`-EIrOF&Ar2PQ=s+PNOwWd^Af)~zi5aq!Rq5X?bqU%
zkebg)$EN7Sugocd{>s>ZAS?hY-Xju9>3GXLbu4B!6c6kVMe-O)PHt2IPx=#pw~7Ul
z6>wG3$xU;;+6`)7SbefDa*6Ak%@FZHCZ0c<sFRyr@g9*N6Z%b9P^}$`#J+v42#7Ba
zdQT~<pUoXgl)bJ8=;X%FrJ4$wk=FDME)HdGHE|IPY=pex<^0)+q0XX~Y^^67Y^{eb
z-3$N-leV9?>zYu8S&Dpt<k-qQqsX?@dk^?7tvv_(T<kkAU3HL9j;oH<k8fhVQBqJy
zZ-q%c;P>9&^&`ayi{VVw9*KvG%PM|;8b?pg+EZn*xX&`h3uOml;c@g3^dIk&KM+Ze
zD(<!s6mKYtnk}b7h6bo;d3(8e(%#9@1<IQE*1hUOHTIWLcA6IrN!b2O%*3fB{Ekps
z$c-o}xm8|!f#1uE59o4f?f9T&!5_0Nt!WA1_=CrduSk(hDhznVZS+xgOC2v3oJ`hu
zq@<`7{1O0Q?{bcMk6T4PKOl7Y>8zW95hqklmU-Y9HO-H`*1BAnwznGcK_;1B`*o<9
zcQUGZ24~>-?fT#trCW@+qd`Csv#&9yl*)rNDp7q>ibt=FpJi{$UY1Ub=W4#A3l6yU
z_W=%v(q!j$?B=c4{#3u6BL^QHl6vefqcey~h#1{n){Y2i39$IO$=U|%+dN#=R<X8B
z?ze9In#9STDBLRg;v%c0^BB-|hJ}T*io1ICuxpUcs6>5KVRCjoGaz|uZZqe2v{71^
zwYd^_e<Eb>Zsi)9=KM$)UCT=A%lfO%&EV(-ySrb%;iQ1yEVRAuM|Y=Zv7p(Kkb)0?
zaJmQ><>p%~mKtasKrxxm=DJxr(+j}?>eKPbDR$F#Io~k`In4;xi<NOE%aM0wmSF#C
zce{Gf_~eO1lAYwkmEE@ws^Rz;WH{JV+TZ$r0HXQ<Kg69(cb9?RZN=p<YZ;WzrgQ{u
z=z+@6&(HKa(bOn6OtlPL3MNsBZSV}D8UO9o$&=&cYD`MnO*Se0mh|Ys-w}KziE03u
zKl%<wOld!?^5>=(M>mgWMd6o21sl@VywO=ARs4Je6s(#(M2@ar{2mvgAOmQpM&wX%
zvZ@rY#ZxgK+UT>1*ldGI$b5d8c{yWW<`Km*SaNkZQMlq5Ge|?+yj?6m1f8y``eb=s
zvQw~M{e>l(6s}u7KWm4;MKAs>d(w20S>e*%Pb!vvvlhwtHM{~G(B?i>gyrTJwPib}
zv(&gf1R&MwL?cXk33w!|%(W54LiV>0c?15ODlUuoO$e15>5FoAbCZ=AWjn!goBcEV
zdsp?bXTxC!+75yyrrt4yq0G|CW~+I{Wx350PVnc)zTUyEMxQ(eVV&a<eC&qFfu|=o
zdrjryWofp&W@tFM5K~rK;Ga*WM%8}WZs4UQ?RH1I=FnbDesij@Cf7UFsJJ3ls$&{F
zElsWHP2o|k*xs&V-&%E50qw$23rd!qGfe)^@?6d|wTRT5(wZ6gwui3?p>WtI^U?J)
zK1RjV7>rSpFRnCYtdF~Da=UHyV=$C8S)BLLhUp7(dg0{SIygdUm@#p8l|f4QW@hMb
z__fi(7;;KkH-%#q@>J2Yf-P{&D6s(ib4Qm0zHd@ZOl4OF_eHF89iW02HFF7%5yL?_
z5d#MdAv}XG0NUE5!iOE2uixC}bB9dXlL^1Sgx(SH=v}VRK_H3idZ<_HRo6Dtds0%Q
zVM>_?VeN9&y2K)ld95`j{5kvXPviH`&)a`do}&OQsSjBpa__2`a?}zSGObJUO4w2V
znHx&W&RD|k`!0OjT`Rv;y%!CjhT;TTsah%uXiwqvesZh=j-I5;o@2ovC?VfIM)VRf
z?d0@CB~#S%sF0ZuX_9pO{`2sW3wCgQy7K4S!beDxKsBc)GkEMlWX?VziBIt+YTs(I
z3{<~;g0<L|vrJ*d>s&)}?u!)t-1ljeB>*T*+&L%?P=gS}P&m`P(I&;|<*wN{yJq;z
zV${o*8)%LT7!8`C9xdtnIDK&2q1HZ<e}aYa24~<I1VXhceC*rGUWK8&`iK?{Cprm>
zT}ZD$W9r~UO@+>Cl20o^yWg!G!rXzHPG#P)NuXh&mzw=4Ug4{Y0=?|loSGV5F0R;Z
zA0^|!<;i`oTZ#nzku|luRElG^L_SK)ztlw%za89H?;|PYR)gHJ@}J0|<v#Q7iT+R0
zfb+k}g#VR8_?!RyU$BY)E8g_~_~qZ;(sHvBoAilY{EFX-EK9W=f+!ZoUm!+QP>>mg
z{5;}MmPDyy@q~xFJ8Hh9nmSp(*?$8wWYLu;Qemn&47b25*}pgp$$tn`oWDdeR4sen
ztzy8j5d>TQS!M=-m<Rm?^NsQo0Nz_kvsmhrVc_3~1{c|cyr8G258ZOymp2y77&5O8
ztqh7jZZ|>UHc-rsdwaAlZd3zmb#*mO?}4H*`+z~k^k~YznOt8i=TNfzr_YyL*Ccv*
z{4O;GZEe(L0Z%B7LjYO{mYddX+uzZn$sa*jB3zldX85Bm^c_mFdjFw3O!=`AHL|y#
z{s?>dGE_s<o1Ef1>}(5nAL-Z`G>)nukFV3?V|01-QWByo<iIK+Ba|O0E>R>-y%=lM
zRIYC(s_g^HxYrZQ_2j<Tfsz!L1gN_^A`Xpt*UtU-8*bSU45bMiQcegY?1>4<w>^i4
z{o120x89L#qgQJ0rld!AeHceg+F?t)f+8=&3Tx=ur1ipHLLRqv5Tp1T@$`0~tHQ~)
zsL2@+g&GLj5AhM6M<n_hEUP}jXb?z5xh)_{rOM*-aQZ>UU}18}@mpo>%Y7_{RsjC%
zPZ6)mSh?A|xJhsZ2({w`AU-#s(wE||22J4$#uj`^S!zU_C<^{FbjT~Vh|W`SMcE;Z
z?+o(l+S%LsVY%t7Y>=X{(Ql!ymoiwqh5J?B*G}ZjiM&k~O%`7#VvuW^mB1E@_S?Qf
zS(Z0Ae5b>{q$mc-e#vY#MtKoWDvY@>lsmK}3knyH--kFI^?gu`#UsudzJVyHligy(
z^Mvf$l$@#=+qx35iBY%Es_R&&f~=);d%iU-4$`kk%T*ckpW0S+rF>6MqM+UK@TjYE
zzYS3`GO*HkqzRn*ll+23f{&+v&&5Mm*F!OWUst}VNCRS%uE0VVmLK1kTiLz!SkFR}
zSHptT8u+Hlu(uz>k%#dm-~5h#^La*&NUnSTB(wj=L{c1Pv{+bWuC~@()8zSvUTsCi
z*h{ylefR4R1|~6IiVrG=U`UK~7FIS62BVR%8iAMe?h>e=FN|=s?o9ydkq|EO{QIf~
zwpwh&&R46+-h>CC0H>PR?dX8pk)B!dz8ZYOy{_OFa~arv*9pZwtOHb{po9t~<EgD0
zMxc&C=*;tPA1uTh!bqp?HC4ic5BpEwdu)Z4=i~*qSLL;h5&HAaEa~XzSVu(R`Z{o^
zY<-JQb+Ai$%Iy-a{;X!EzN|Di*D!)7GQ;qIZ#zlQ!Fb{iPjNS%CpdGE@SRRc5gOrp
zlqqAr74|bBjY7ZK<z2flU)P_-))sbl5g8AJHoq8|l6<b#=*M>x9dipBD;0{Wb@oQh
z)7_yAdXoZnqD&*1MS?T-pWJ)jQY|^Ae2wOeK3u7BDU%ct>dUc-C}O6<G@`@*hs9|m
z2#{Ai-fle0&tA>8Gfvb{Ct)d!$b&!@7sjThw$<p>Nk4!b&ZMg<pk)$8CGLAy@#nvs
z!3AHKwtD!6)3>(5bU+FUVcNYr^kYo5S_xSuQgRezokb(*MyVO}*C9yc5{F<{=t%;j
zDywp2p+i>I<EclVg9&5(bE;~G5`dy+eygeUcwDRz%;AX|+7o^%AYD5<cgMa^`E`x8
zzc~K@eFhX4Ghs^w%p;E)R6^=cKk~M?ppYp{Q^f*P()4Ke(r(V8SS3SUR-DtY@y$#6
z#dL1OtdG39S(|jwx-w&JK!;U=K$u11pKPH1GoFq=h{qv6|A58Sv@cYjhgJ^Xm4=v6
zCS&m9<Gu`e@ge>fcV^5p!v(`3p77RJa(WiVOGxEPe3Pm(k$ogm0W8t+{`Yk1)p=bi
ztzkoI{+jj2Uz6nzEyGTKXLZ1jG_@h6(wKZslbYI=6g?fgn1l`(m$S|=Ml=leH~1`+
zUsx!4pT_54K$n)QN-+X{{OCAqrNJjko}fN2?|`;C%GW>oT+>%D;X)Hc^Bt+wq4Fr%
zjH2HzoxTq(Ngd~9M~$e8c0th0`Y9w7-Hf>q)s<3=Li0<Lvi?d^%AB5<Yj8js<YfR8
zDY-C1q;W>h;_2h0^a&xgJXcv5GKAa|%Rw5VE$HvmxrJw6Bo<(8&;RgR@%Q>95Iy?K
zCwbk-Ut%h{fk)GN)4GVh_p2DF1-q4>fhVuFy1G~L&rAo&GcX}-;Y>)wy`-jsiJ3yw
z2z;+*?p-%mcp^l!%;eDPW@4O})_<uoM^cDQzxWA1f1^OXyN17#iosiJMaA~6LmFp&
z&4lxs;?lMyM=!gax4(+?qtVr(3G;}CbGA{)x%6~HzZyqb8=hie1G@!UM>)fcq4aoQ
zDlHcXo62DRCq=GimV_iDADbMxvjG33#|8fJGx=@{KBRHhlXu`as<EXp<)OG$SJkOQ
ztQ6fxFdjBB#TSVh{oG1BBYzK%D~^y+w4Fvg6o~T=;wiuKZ5Bq=3^j_1WFTsxic#Ix
zmc8whKZZI|>E+o6YT5ID$LCD2)UfwO{LIn4lZ+$!EF&k7XA4pJ^YNX!z$p9?q|_uZ
z=-DF~^^XMS@3Zo3b8OgqZKw*RF|!j|mva;d7;8KDBx6zdHj_~|aVF<K2ux;YEDTka
zd<f*laiWI4x_d~@hde3fy=bfan1jO-qvra+oAdB7#`nd1gkk;h1<a4lgu~RrHub`$
zwDjXY;(p8C#ut@|vy|7l@XbQahb-C?R*C;8pB&A|H$bQ#?=6#)*k8jQ)%t=zAM5Y^
zT6`WocuR3tjW$q&x=R#@7*~0EHl@W~l(yFe#FcVzTPy)Y1BB&*tb^1P-gwF1-68hz
zF7GEEOya1Gw$}mV=a=_5vZ!Dp7Fyi4l#-ETHvUXGU#hL95n)m{3NxN3OhF60!@Hk5
zjF8@O{?aH-n=DfzmI?;bwW#{6)K`vr`~YWc<uXh0oveG|xZk9@T=PI63a+1C(YKZU
zi$(GUgiAysas_G-SvjGClcS>@E=J55(Gh1XC^%!_bNsIJ^Yg^S#5>b#V*m~wUe|wv
z+&4X;*biR7N-84;%)jG2)dLc915R1`J|1Z_pq4(tSy!TdGUXNrk*P@7%d2}-*=E(|
zC|*@6t3@wnlbL~P(>ocf`_hE&`x|*Y66rtsv~mH7;<vZ3fTZuM{rr!lr*2U5D043H
z8YyoCA9tLwf2Dkiiju^$w*whHo@M8A2vkHamo`0A&?+_}eD+b^`aR2w%wX#`*gj!q
z?&4+Z`eA?pZkjjDC=QqYX+BZ(4(3g_kcX4K%dR)0Rv)f-F^1&@Vo1QmmS|RO{EuFk
z<+qO77Fc+w8D)&+qwJ+Kj?iP8GIG6a20-Y#p2SGaVD_F`)w)N#({)b~+0*@{jXx^9
z_-Kz&+9SroU3{P#^|S=~Ys$kvz-NT^_i>!XyWGmNt$mWw0G)&}mfkT_C!lev-fG|A
zO}!9W?NGv-E~K{!mKhH2BOUu)1-8BiL-bkgEE0FcfYQbp8#l;Y>8fb5I(qPuu}RX*
zCR5sH$M#>3)vYKfj&ZH>gVkFOY(ExssG0gqFHOTLTZSx7>3Ei@MhFS&igdn8<jkU*
zx3GF$Vh*kP1~Xuwn02NOf>pY&S#Vd!-cRqI+p+VF9$9oM?Z$~_=Smn~sx(qj+Vp>$
zL3qp?ihoZca-6Eo>Ax6yQZ=x^RLYwB(P?=+B>40RxQP65LYIhg&77s$=984<baR1g
z+7Z9$#PpOpXIb~RiG80;g=JfOGaXb|I61{RG>%0v&=l^TgCqA&iIiw^k+2xg6e?oU
zWRjm{R9jrAhX6Z3G5Q(_6aTgM5q9z#$SFGc#AbdcGtPX@xRAA?B|2{u9B~?hh8lkr
zdOCL6pXILrQg+IZeS|IAe)J+?t?+B|{&=2+MaUA$3T#E9FM~l_RXI1SV)3dXAXb%5
zC*FRxH2_g;>7N}`JSJCUoi1szY^o5WjJ`bpuBYfs>-V)*)J0qh`e;<w+xu+FiTTo~
zjGR(g%Q(6_y}2!8o2Nzl!cB7of2bQ29Nk`YOz17lU=y72)8BO#{q>$n%tJ{jDp;N6
zW&Fc|WxY01!%)*Y1qh@d_uC!VJAD#pJ<!phqgwvXuogC=7`jjI=3z-K@YQWNo53#Q
zz|m$sCcwfLe_{G=?Nl(Mx83pUP$~uSI-U1*MiE;0rn{_d`SZVMztN*e!nLz&6l7i&
zPX^g!_CY||%tMZYLW}{GBSfC63SO|_cfq5JIhe)m?DbN_KG_{YoOii|T?RdRnHq)8
zKVT*B{#n#s-<x;@YIFmAVPfKnpI|miGi`_FO(kWMY7)NjnkG2E^`o|xa3hO>-K6H3
zCqEioO~_AGu8*0gf|Ai@r#u&dF|+dZ&+`3o`4q*<o4irb4mSDz@^=FoqNO71i>6zp
zgxw$y@oPc*I)R%HwvXzjL~o({cIkd+<cTIQZVoPkGd5}2iH8hP+sw|SKuWjnkaJ_`
zg5jOCW!GY<Ph)06zORwVupUXil&!&5s^0s@L5#N410Zu(w@NAKN2^y$KVZ5HT6|x@
zZk<i9%{}}b<J7vjY?7HZ&C+GGoyizcGmC#d;Z}YVCoud`_@dxMXfS%NuB>=~izyUd
zQ{M8TP_(n;l^P*Fy4)i*-00|U_!Bfv6^%gek9pJMSIyBX{oKq{&Ts8@DRzkDl`ZA6
zbSZY+rY^i$oUv+UwE4qJ9$WUr#(HTB_-P$v7?I5VsNF+mVU)_R#)%I9u1$Z>JHd{H
z9!jV}AhAi|oop6Nq!StagCth|wwH1a{dKs^``!|&skce-Y7%dyNd;&>q56-6ld+RN
zv3ET_8GGMJl+2JWOaC|&;QZDCw=l<6tC$b{Wr)f+GXXOpsb#bvp|+;}dtOFH;6n=f
z_}u+kjaB3OFi;Bviu0I@+C+C?J7e}Ye#@k6)VJ=8;GwKc61ta<Fl2Pb_|>%Aix|n?
zlIt7=91J|3+6`BT%KA<_t<7ZroLi+o3Noid_neNj%mNj7GCR&%W$-j^R3%jK?*zh;
z4%E~blyQr_;AAJh5895F@kL*{-xs@hWX$cXkqjJK^-LUb*&QR!BcbU__+`vgWi0%J
zYM)YV4CK!T4EHh}mTb~^G#MEhs`iZa3xE7_?kp%-`*t~!e8`%w5gjQN@){tm&B4jU
zQ`&r48e8UV9cZg#U_g<S6#TTUBC6<BRqXQ&qG?OB6bIWVAts2Hj<;1$(~i)L4$QQ+
zj-L-NHk`-(;x@eK6YFo@Rea+iW4pa2m9S0z80^f_VASaqgtVqOG{ot*t#|!9{otL=
zk*grV2T>TO6kDfk!IR=-GV4<j@h8!$(PZeHPL@zztERQ`9cKxbOHdYT3RMOC01;&R
z4R@WTP)k!3ias6cj92_DtZ9EaAWfcI#<<pSd^a!3-rio1LXPH1Yzj_aobMRC!ses|
zD+{fIuqbvzOMSF=FE@Y1DF#2%Jh8`7)vlc+#gyg4W4P_E1I2gu_ipkrUwkp998{8s
z^SZvI;v|GKQDG)q-l<r>i;NYZdR&v&^%?dwU|h1Ad-%7jh{#wq<FpN8(i1CQqf3P4
zHzmG0V*_ky`Qwba#ULh&naNi>=`D?XZ@DTUE+0jK=^N+(o~#Z;;ANC<wIyn#N;_AW
znW(6!tD9Tk57)c4NlbvWceYs&I-&Ly$zycIx9=?U!!TJ(6D{?FF#+F6mDO2#dDzk9
z$An`TP+6H4p*Otgd8H)GUq%rnB*I~YfX7-o{7L8|)%a@iV>n&=S=dh@L<VFg2?B)P
z?-K-)2!kys&>`<F->rKmW4@4nr~jJ0s}>+FonHeXP{}pbPqt<z%=?t%OY2m1AY~O`
zl^2{uqCCyq%S)q3@{R#tQ9yaBq@xxeO`#N}>do|I8NRrRzu{NLeDwn#O|9O)offtD
zSNQ%;A}1#$MJnxy?h|$rDNp>E`HFIkyqW4gcz8OvyqWgIQ{*O&PR$e-gIkH3#xwBu
z(|0)0neDw@M<rsdKV!rERrfTsr{Moj0K^<S<MoFAIrKnf3^4fp0|4MS4ug>#gr4e$
z0S3Qw5W25xUn?!tFdP^d2m}Inc8?H3Xk=npHZCrX?EjE^gb+e#w7}bI5kd%I>Ou%1
zgnmnVrfGC^bOZvvy)z6c0KotQ3^2d|gAo%@N|~&ztkAWtJ*ms@_ok%uahx6i0Av9E
zR|FD(fB^;=V1NMzKMW2%xv(tk+NCH;1|M34V(%@<_37zOj-vn!00W?4@EZpNfZZ=p
z0RRIGFc>`n1>p7zGyn~Q-!!PJ<1;f$IF5n+Zb_y9p}a*f_#*=Hy9C&Fz~IjiF#8?Q
zez$<^jWPJGg8k>i?>|jL-uvGF%0R+kqy_|o!zEw<<h?~a20t1f_=!N?Z|DxQ0Dk*m
z$l;ZS<7bhd31nFw%wE_q#D*aTqbMMIPd6z551_z-*Uo{^>H>%TSN0;BMi@o`pg%Em
zgEiTK{qOQl_>~|26Bqih0T2N7K;691$isep)c@VizU}?!pZ5N5=qrQ}6+p#?AvO%L
zVR+c|!L(p7P+#BK+}z&X?O_;`D9Qi~AvE+i53u)~bk70eF#n38$T}U(%8Ja+PESjV
zV_EJ%-8{zU^VHY3*4KCS^+^mPXxg497cmTI+TINl8ruG!<SU_5fuH}%-n60;A|@t=
zrKP3h<t3X;`U7?Is4NE?8hV<VT01*kgcv1B4ZTf-48C7`-nAcoCG^<_Rh4<3W@biY
zXQ!p7$8#M2^9{qns;e$N-G(y^F~DF12S&Ty_U4<bolbu0)Tvon*#?7&VVM0E7-U0#
z&WfV$nLs>3zd}L_SN@u>C`zcJ0;khnU0qdCu`MSj{M1ut8w||e)Bn)Wv2AUgZ@#%s
z5TYkdnv{`|$+8?Fgy*@?23eLRB=nfVJ%z#_`W0YVCiE3mRVn>LzCs8ARn;h^9LK7v
zrYMRi2HM-(Hf~(cFz$2Dot>DN1mNHAlWFjHobSH7rlUidJb6lPZl1|xW*9c~^3ZmE
z>OCF&S%eU`+fiLzy>n+-N{Zo(Gv=Dj+}^ixPjacORPypB;tWG<7-BGr0zMcFE?M$j
zTbs0C!I7n<r7X)(3Jk*#0-C1%;DnU?c!9S={t6I=B}7#f`g5-Wj%PJ>&*Sn4VHk!1
zs;Jtp`suvDtCFn!?DuGz#<Hv=Nt-rpS-JANnKM&PK6y3(1<(Lk0AjZfyzs&bfQaLc
zTbP!X&aw;uFf0pH(=_dWSHc^Xp<_9YP)$*^{hO2rwVfX|(}rUY8HQ!3s!(7;&(awD
z9)=-%-#Bu>Pto3hR99Dj^Ub$mVZn<pJ~}+y0w4ou0D`J2Z@;~wveG$!{=CVPC-Xc<
zfietB0H~&E|Fg{l?y#z=EX&HWTvoRIyYH4wm=N=qzsw_q?B6-Wh9Nc#F&JF|0iZi}
z)Y<KH?AWpK@v)*9R8`er&^!8jyZihRQPB|*CT8!2is3pIvmEbeYi#ud@(c2HRMigj
zJ%q4~<}BOVnwXgz8?M(hN|Zo-L#-~ZFe6H*X!Ia|I?);Qswip@*to7LYeH!RL$sfM
zm8NL`psH$oeC)V!<EyLd$Bu2w%uL(cU{u$y-%V+FNlCH6U<d^K94~N0>TGQni7q-e
z&ZOf)3zKVFD3k47so~JSLRli!Y}-xa(z4>MEFlNA9m24Jj;D$u%979PH-=dls?lGy
zKbod#gb+>g)>YNSkC_@loNk2=)9ds)P7)=Cp-zviGw>|4XM{tqQdO1b`N5Y<lEiUb
zR8-`cF-28X6<fCKUa(-|;APj!%BGHvz}T^4ladl;SqcV&dOhzQ=<VtcTH|7(EJi{p
z?Dr1tcX4aqMK4uVL+2tfF;S(Z;~N@kYigPc3bOZ~z=<;qafTrVqijB*D7x$FdXtjU
zqNAf^S&?O#7x;#<k1x6K>?^Lk<c^0P?Fw)_FGNK}Sxg31QFuYm5-LiHUT@$TP&8tR
zj5Hf`iY$lDa79Vt^+s!Cq}jl81XN&Hmgw}R$VdwVDga?Py~P?H-1gm<OWw6>JjXJs
zs>&)gTOuMNEG*Fo00l;8wnT*cpL=j=MWsV$(3vcek-YQs?;ifFQPL5W5TdFYWw?ll
zh;Xw}Q)HIsc|qU=W4I-ZBUF+kPB2)kk!F*Q0m=w$?Ut>I5N=}Z58r*iP30q^B6$V~
z05F`<WU_=AfNHX${y%$X9$r;-?*FydxW_Z+<Rowsk`M@B2v-DAp=h;g5ta6~wp8mx
zxm8iB6$C}WiGl@0K^)K`phW~x1O=^t27(}92!tU6fdn#<i6m#-^Y4!%d7$;z>%Dz$
zABX+@>+|d<IXln0*4ZojUF-e6yd+AJ!Vok~Q&m+}RYRe4pRd<}11A750e}FQr%$&Z
zKOV`;>nqEWrfG(0^GJPn(L)n|KjDtwPFlHsm(7^V<Mntvn6qsT5kd`JgP8J^n!1LW
z;PtvNv^b8lEKAcg)3m85D=x(&3$|q%Hb*cPWtYMe%yE_t5HGpC{#CCnF8;EN@$9SL
zvMf=OT`t8XQq!^_6+9ldz++w031x&)B8ZAC0o&4((c|S6Q1(Px4=tI$unRDVupmgX
z%fm1*4HHoUY?I><rPMNY!?Z<7Q52D3Xnyq<nx<)Sm<9Ykfg(*+EgMR1FH;kr&7OTs
zmrm?>W`4;rH`Dj-t3rw&M=Rz&xv?{9Ac7!59)Ca<d0kUY3-F>Wi-IWdoNbz>scD*~
zX<n}<FR$N;6YX7HZK)iRWyOyktxr!6r>Cc-ehd>>@!6{1{pvsOojm!mS#NX$hAH#=
z{fZ<QhCz6qvrSFYnIIxynE?6yeu*cRVe|}TFqjq$h7TO5vu*v{!-wadFhq|({x|@j
zqoc#)(IK<|;Le^8`CkKZ;2QuqAFQ)y#vE|q9|1%nT6uX>pFRU*S+p$62AoT<SHHfn
zCH<Ps>sDSmD3>RoV&{h0^A>+uAJ6F(JXE?P&IdCj>x<ocY9qv>AOG_sPnIW0er~pr
zh}!^Q&fK^8?dP6f`gxs^m!FNh>h|rgt2(fG-r_A8ee!*N)^zxj7hhSiZU5eGe{j@@
zk#?dRa4_Cl@%rL9E7u*6dT03+-ikFZe}2hFn?KoC7rWx8SB3bFl}n$0<NcD8m9c>%
zuO8$_UC}r~pmNuTbLYSC#mVlRe*F@46&1&7%8K83^TX0$?!YuR-&Vczh53KlP~4C=
zcu1n+&D+M`zNuR4lb3P2xWOGrtX#N63ub2oyz$eApIz{L$$^dmh5f9^>9QTAo43Ay
zLKU*pJgS<sZQC?W#`unomcqgigb)DQ*x20ApohcRj8RG{VWQbqI%iJFZL?P{n00ej
zrq7PGu6bqAi*Kyam0ohRw)9AquXnE1TC=tEpy&-A+V;lN3*M2l`UhpKX_^h75pVn3
zo3FmK{GFo_sehkP$ML=8HK#saz4YBGt$$9YU`4mCT)gswb>&}n4jOi4Zf{vls(^!r
z7GL}3D=#ivb6iUs)>kQ6yJ*hyZ=ccJg9i4hJ#x6JqN-%=%Jn5>`Gbq9Ha$K5&W8^r
zJcDy{ynIGlj;ns}p6bTR)i3?|NF-R0<0}7j_ZeGo3-Ql)ml?#Ppy*r6o?G$G7rh1!
zP@rj;W-_T_0xFB&di=S!l0v9opJ24La`~b^zrVfgXy?gcSKZ*ZnAejY*}iK0Zzdn;
zOyuU~1%iA=rgCiGk*3DFRSV|r?@;^o>j#q^tCu~uY{T}t`Ud9C^ocMMjm6_}gpepo
z9UaYCS$>yG0l-Km?fv`f!r=l%kyCj^hLUSvc`erW!A<Y}Y1qIZh5G)F-kST|%hj#P
z?6CjPCm(}gj)INSeZ`GtP;A}(@XTi$5`2Ds*i@66rkkc|nkLWl?d_)r4NAut1CTnh
zVRd#=pDzR<ckWx4lQ8@@13Vx8JvDut1K&~5bq!-A2m(Tg=Xnl*t_1ke$e*?suNZgt
z(@hD&LnE%zqM?Jz{`$hl`}S{Nzi#=uFRet=+e_ykZLXX8@O0L9VEM~)*M7PmAY>Y*
zmec?z<`3#${r(fHOPl$`@p~pudZ{e#i)@_n;TMt0%`=}_sCxTIS~AjR1KYGr(=d!=
zEa43g?q%$sId>!GV)LJRwB%GgJ5z{TT^x<CdhxjppGOOFT#?ph1Wes9EXy(sEuoUa
zp@R;+wdB2$!?C8)ng4aejs~-~tmKuqx5V3z&b#;N_TUgtylmQxM-wnzph9{e=wi6L
zzGUgEU;6y<Kh5}C^i0K^hnIHQX_dtrpMPVA6+1Td&il7j>uFw>ZCMaPLI@$m<#Itt
z4CAXguW7a<DLl_pN-@T|ny{3->qp~1Pr7>HnmvR`Rx&R5at3ADv!7Vr)Nx|bD{mZa
z)v9-FT(@HL;hpQ|Ejd=ypFR4(!V@tSSf*(jx~frkM!ziSljTo+R&UhrTyfVUPj`FL
zt6rG%MRWI_7Z?0x%dx&Wy(6*Ch-IZV|B#(r|MIj~-~W72(U5Qk{cO>krR$FkA2IN~
zS7-gTcz?^$ZFk-HV0D}vDc=72n-xl0I%QHgBTet9UiX(xI+IJ5Pn|kzzL*hwY2Kof
zYOG}4`@8qo^Qdd(qK^(8ZT{f3mpAOt{G|5bY0HzC*rthjsd?uMQ&w-!51}PXmhUXD
zUA^SNZB4<xe%jh(LV&8vR=<C^UGljRPt!tSrqwQ<ze~44>ADy1xMd;El-DiUu&1=~
zZz~tB+SXi{>)N_%(auwGfj~ltBuRu2#u%l7rhQe9rRy4mP!vUsG0*cH<PruQIl8F!
zgNe8PaX~wF6PS#1uAznD50<amw5#&dkKTIqqvJSneC3l%TH5wbpRzWTo4)RqzpUL>
zg&FA?N<~o+V!95Tl4J**<lA=`IL;tMk|dGmd0CbPfrlKr;L4j{U;b)-(>s&yzqcYT
zr@Q5VC$l#&3=|kQ;)0gSJ(~_3s>Y+P%4j}%v_lbDC*`9Yl0=agc*+n<Q;5$O?j>}_
zkRW1TXv~7?58ie2H5oowz4K@w@Z<ZZ-ZOFBPYV3Hj<6(2ydV%>kw_pdKcpjQCu)uy
z@lUw(j}soeyU;sCJyw0Jy?orXS@-_#wkyXDjA@7xB8rkA2#P2MJQ=;A&1oix>-|UG
zeBab3Zyr6$pHS;+Di10b%zXI%2kxDi)m(m59&};2@7VD-6^6Y?_B=3u#^if$mY_Fw
za{s}DB~)aJ*eLQHaSrDVDVQ^N#$|aSLNLadQkr_O5|TPV&jFxAXj94|ghf##giwMY
z^N)XQ@v~3fv*D5HbD#SJxV>%<@TKLGXe4;ib%T|T-KCrMAE@th$#1j+Z#1haqe-t&
ziI^Y=BF03L1wLJJ2LqXDMntusDD?luA7|b-dF)_?fUb2%PyhJVNfReLbi<JUaM?*g
zk_1r#@z!03%dfq6{<KMVjvp3$XWxlSZ<#o0(*0Af$k|&~*&Vkp|K*s6o}PB~r9&fa
zYR-`1gL~)Q@UyXLK0z~0o{G#;e))%I@1Hd35=r3*C74J8_5}Qb%M0U?!+X{wsmRlW
zNNWI5D5X9hDc@Anc8W?~D4ywz9j~Y_WmBG-e&=s*y)l;=M5Ij8ETLf7;Pjl~zq;w?
z`RR(5ppq=Awm$xmJEqULuOOTgIaObAymaieKi&7c+s9rrAOQ#^Bo#wKh$M-O$q<@n
z_pJ<!MM;tvW3nuZf`AaYaNOkOZ!ZJ;*5CV^1udM<?ZJVJbOFnVcrLl>qMH5d%f8&+
znRDmB?vev1ss&LI=?RLv857SLN=hj>TkQ2U3B#VHivxh3_2c>%fjRIEz&al+2ORh(
zfDi$|qLeC%f)L_)!J`QAuJ&NTj}|Xmkwd#aKd@`Y%qP$VBL;`vhDC<``bKxWeD16T
zSKj?!c^(Duy^AjY#hUjvPP(QD0Kj-bZ$3C{+I)HFj|XN3P0I5GGr3oYN4kX>7Q8Ou
zWM{i-g37v@T21uHG9gqD$i`=<tT+h9UQx(HUJyJ~sy$;R;#JiR9ks4rL9PY2o$4^V
z+RApdy4;d1NtBmJyz0S+A4LVjhh}@Rz;ia27V-z&%rZ<KioOgVA8Tn(0z>aUZn12?
zz*!cAkTC-3z>JV+>ZWBuPar7w?o;@q>lZBFJmrpGA=UP<3*6Kuj3I;&LKtH~5EMlw
zBy}3i1b}iJM+glB0;y*%<9TFgkvO{c<_BJy_lvd@`%5;y_RL?(F8}EjA;y_F<AFPW
z`oWUtKRS{eKVgK+8+7-{|MlIoH@vsLuZuy1eQDkk+unKN*$)Pc`f<9)1+YX3?USAb
zk!2E_F+Lr|S|br#t*bdzV@p0pDaJ_g`Z5G})3Fl(QJv6C1)gs21^^s59dY};6s7yq
z`uYeoEr_WoV#?V7VX9C{ImQcwQWDAvaHfH5!jJ&LX^nEN<@?J|RC)8${J}n17Yu*!
zsTHrkuz**SOb{U!f>|gtGwZrr9(`xy!qFF}x9PDHU0S@Ws^p9*GD;wVgdm7H+klYq
zjB*eX%pp6kPbi18RL$fhug~qm6?=Er9NDvGM}ynNi-L#{qLjK^F2;BWO^hi3HUK7s
z6aWijq9{sg;c>}gq@z2t==x=EF9@4u2M=$V`RKAh(Z~TAB8TN`uNs>f{rv7J@7?y;
zm~>CN5X!pjy4zR1yX9x2FE(^N_14AnyrL)=lb)eW-HTG%Q$6h@44s6b1K$Cll$Ru1
z*L9ZKw_(gBlN}phy6lpRM_hNeKH%54US3qxJNnG@8K2p3+gl&Dy9VEOiJ*yt?-&u3
z^T$lRXT%>T{_2Kb-0;!CCQ%Rtf%jzeE$oe6yzimyRf!{iTV4;mikD&m@k~G_9z5=s
z1FXvHM_m5o>Vsb1Bk+h2EDBQpONN(yI)C14#i-`PcTa`>Fn-80lgEvpG^5$iEBy*@
z{?AccpSXJTjZd`b@t`b2#t24|xA(|=W8RDzTMX{gwOhL|a(fs7K$HZGS^pu||9+Hz
z!iZsG?|N+1gsG#lvqz84opRs(YY%s2`6Yw}#(2`(au;0x=<k2F{P77tx$2fRo2uPj
zuUkS)NUcY_q9`tx%j5B=s>bt}<4~%6Tb3DwI>yB9b}Nb^NG?%tdf~C#hYr7Z^0FOQ
zPQ2yf3;x3@-!WzGQk7M_{^pMCYi=uwnxU&F6uI#gcg(*S?-_ILm|G_-?6R3Gi5QWL
z0fl`)?X3G3R@HQrZe4GPK3<>zP>Dwt4ctBPrY(ye8gtXcPg{T>C=_FXXUyB@uF2Ee
zK7MM@@XMzyt9fMR18r~4y>w{NhW5aHzrDfBphy`6jHQXR7w-xWF3OJn=68=A?0`X!
zz;jUYGoElzWP-qK<o(Gt1K*rI`R-|JxJ*CtW>0uvmj1=!k(XWl*z9*{&@1xPRKXRK
zr(YA=aodeQ8FSaO&2rIAHw|AnX5_UqmPeD4OU5oqWE6tX;ITywQzrjmPZRPLh=ivu
zK@d0s5S24{kly?DyXMHnFV9~3vEugvlW<>6I>s2YEQ?Y@5QNms#F)5TP}h^G#4Ke@
z=FyJ7K0bQXs4IT{2k#BHTsvf7U(T5Q@Y79+x_95-YK1SoJUvs$y>3)*cW~5Q4~@%x
z@Xm49jk#xU#Tmt|q~!5<bX{i*B7~fhWCtAh?gD37YDvkVNF?o|i!KucMhKyl=!sZ;
zL$hiLefnle1gO!@=Ju#R=usm{mp_0&GHGCjA;$p-?9+`62^0AO0g1-|01iSm9%=22
zDK5oG#613huIr3a+tf7^@I14lT{R6|-jLtRV;f<}r7RZowx(t%_(eOZGml4xjSV#x
zar@j}0wKXxYs0BHl+)7`#8C)rz;PVM8Hq?!TemOh)uO8GmVpfr#<po%7QmDOU2Se|
zGMNxg4|2dZ4YjGQOY!;y+k%vGwwW|cp7Ib{ZH*0)q?MK)5*Rdf6Cju>pw%=DLKum}
zi;F+(-=7s0<^x~>VCXvc@yGkp(k?74ECRsBgkT7|T3Z`iJ6wUxj0_(#&F=Q*I1m)c
zj%qaBBO8eXU<`8rK$J{$H8wQ!l0O*qL13p!Ya{I~ok`B)5;W74L;(OqF{i6ZjtCgR
z&gRCbfxLbX#SkNysxrnHM!Q;CJK~-|rblM6j@ITg(O@v-a`C#RTNc0snWkZJkYcPQ
zqb=<Tzu!ZEg%~llB)~j|wwBZ}V-Q-c%`F^uxx9?CI7U&ltEHtqCVA2VUdcACR4E>(
zo@r?8;3RLr@8xa1@nnOgc!Dm0qYRju2{6Ub)}pO#33t#3Y>Q%SYPt;(!JKNCjNsFa
zRUdCZXhlzcwCU4d&tLcRzBHNCHBD1h{ouh;U9Z0Cs=*kG007(8_U)@^Xy7lt_zF?v
z2_ckHJ=s;?)S_WAFFVXbE)i*KIb)`INh|?90WZ>%I>Z=3U<1Tyjg5_($pUEsfnilu
zIgU#twBq8;Sy|T5p#uQ00nnV1WTzzAf$u2b=H`~ITMvc97hZJH2vHP(qjS{N)xC3P
zaV&Ox%$T8)B%Cct1~oOcJ9gAvc;S@=1p_E0PN2S_D)(-lvtpC3a+h5<;hu3tsf((r
z9XL>W<Vf+AR}Kn?GtcI<Nqc+8mMsT;zJd`WMk$K?FWx#5iSF99v!mn4m@yZo4l#ah
zN%FaGU7Z+1rwH_W4WP$H%z^J309CbWYftUoeZ(~7aJXMqR$efe&KNsuPXGY;VF3U@
z*Y#7U>T7B$>+7q7K{#w!|Lp8usZ!TeIxCq>96Wfeyu2O&Pj2qO+}zwiAked4@^_(g
zuJjmZV9GNB0RXmTMIzlTt!*by9zS)e$~4=D4((e|kk44pP6W_2yS~0@*RDhHI1PvU
zWo6}tLYX|zfAg6M05A-rzP{o3@v4(2t9(9d*sy*%IbjGP09MZvtg;g3<qi4ArOQbe
zI^e*!7c7femfqUhRZ&q_S6AQK+8K=|6A1%C4k26D!4C~=8&FCmNe+cvxw*Xx3c?<b
zf>7#gODc2>03(?+T3T8wDo)naG<S5wlF681SUonr5T5se-~5VU0FL|KUcuNljFiKn
zg%DO0J`nJQ!~XvLb22jn97hmR&!3q_M@OWxvaYuF)alb_qS0hLuBRf_bBnJ7j^hAA
zwq*fIi73jUkSixAbHIQsuh)ff&rmuZhEBrJf$uh$mPK?u8H=f=X{f4|vd=l|#{I(r
z002UO5F*QjQV}5z!qoTc??Y#rhG{0_aXXPnSeB{lfIH7!5S(u^<y<)rAVh)yF-APk
zQ_4eVob{kMw<C#R+eFvZSS)E6hNjsmOX&a6P-2W_nKG6d%G86=X?o&#7&<A_?*kA3
z0AoC3{8^J(@^#JTe<)zvCdXL-Aj<*}g8yF&V+aw1g2w|r9^qRVvHyL~`+p0do~*TH
zrB;o9Yz$3o8xX>KJe1?W*_ru2xR-5P9A^T6Y&%uXWjS4v9dJsLzc&CN)Xw?Brv5EW
z`MmuQf#Xs^=n2c$ckksmz;O@&?b{kL?b{9Z*<k*YI0FbZj!SJ^^~}tF{J{TyC^=3)
zyH<UJF3FXZ6_lPy4KRe9X_^k44;+N>9I!YJIPkrMl=t?x6H*<O9QdAsjSxBqY}>XR
z=m7w%t}ZfY(1oeaHD4`Vi9{lq)Gf>AI4)(A?7%;P^V`@s;D7@T{HtKwHiXcDe*%O+
zmrG8iAO5}zjw45o9656IEf;h`;K-39M~<AO%aJ2TjvP7qKh*yl0HEFG0saSU^8f$<
M07*qoM6N<$g7!X{8vp<R

literal 0
HcmV?d00001

diff --git a/docs/ref/contrib/_images/users_changelist.png b/docs/ref/contrib/_images/users_changelist.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5f9c016cc2faffefefdf95a7a131e7090b3c22d
GIT binary patch
literal 59355
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

literal 0
HcmV?d00001

diff --git a/docs/admin.txt b/docs/ref/contrib/admin.txt
similarity index 95%
rename from docs/admin.txt
rename to docs/ref/contrib/admin.txt
index c656c716df..e7e55fbc82 100644
--- a/docs/admin.txt
+++ b/docs/ref/contrib/admin.txt
@@ -1,3 +1,5 @@
+.. _ref-contrib-admin:
+
 =====================
 The Django admin site
 =====================
@@ -108,7 +110,7 @@ A full example, taken from the ``django.contrib.flatpages.FlatPage`` model::
 
 This results in an admin page that looks like:
 
-    .. image:: http://media.djangoproject.com/img/doc/flatfiles_admin.png
+    .. image:: _images/flatfiles_admin.png
 
 If ``fieldsets`` isn't given, Django will default to displaying each field
 that isn't an ``AutoField`` and has ``editable=True``, in a single fieldset,
@@ -169,7 +171,7 @@ the ``django.contrib.flatpages.FlatPage`` model as follows::
         fields = ('url', 'title', 'content')
 
 In the above example, only the fields 'url', 'title' and 'content' will be
-displayed, sequencially, in the form.
+displayed, sequentially, in the form.
 
 .. admonition:: Note
 
@@ -221,7 +223,7 @@ You have four possible values that can be used in ``list_display``:
           class PersonAdmin(admin.ModelAdmin):
               list_display = (upper_case_name,)
     
-    * A string representating an attribute on the ``ModelAdmin``. This behaves
+    * A string representing an attribute on the ``ModelAdmin``. This behaves
       the same as the callable. For example::
       
           class PersonAdmin(admin.ModelAdmin):
@@ -231,7 +233,7 @@ You have four possible values that can be used in ``list_display``:
                 return "%s %s" % (obj.first_name, obj.last_name).upper()
               upper_case_name.short_description = 'Name'
     
-    * A string representating an attribute on the model. This behaves almost
+    * A string representing an attribute on the model. This behaves almost
       the same as the callable, but ``self`` in this context is the model
       instance. Here's a full model example::
 
@@ -373,7 +375,7 @@ how both ``list_display`` and ``list_filter`` work::
 
 The above code results in an admin change list page that looks like this:
 
-    .. image:: http://media.djangoproject.com/img/doc/users_changelist.png
+    .. image:: _images/users_changelist.png
 
 (This example also has ``search_fields`` defined. See below.)
 
@@ -395,9 +397,8 @@ The value should be either ``True`` or ``False``. Default is ``False``.
 Note that Django will use ``select_related()``, regardless of this setting,
 if one of the ``list_display`` fields is a ``ForeignKey``.
 
-For more on ``select_related()``, see `the select_related() docs`_.
-
-.. _the select_related() docs: ../db-api/#select-related
+For more on ``select_related()``, see
+:ref:`the select_related() docs <select-related>`.
 
 ``inlines``
 ~~~~~~~~~~~
@@ -572,7 +573,7 @@ For example to attach ``request.user`` to the object prior to saving::
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The ``save_formset`` method is given the ``HttpRequest``, the parent
-``ModelForm`` instance and a boolean value baesed on whether it is adding or
+``ModelForm`` instance and a boolean value based on whether it is adding or
 changing the parent object.
 
 For example to attach ``request.user`` to each changed formset
@@ -601,16 +602,14 @@ on your ``ModelAdmin``::
             js = ("my_code.js",)
 
 Keep in mind that this will be prepended with ``MEDIA_URL``. The same rules
-apply as `regular media definitions on forms`_.
-
-.. _regular media definitions on forms: ../forms/#media
+apply as :ref:`regular media definitions on forms <topics-forms-media>`.
 
 Adding custom validation to the admin
 -------------------------------------
 
-Adding custom validation of data in the admin is quite easy. The automatic
-admin interfaces reuses the Django `forms`_ module. The ``ModelAdmin`` class
-gives you the ability define your own form::
+Adding custom validation of data in the admin is quite easy. The automatic admin
+interfaces reuses :mod:`django.forms`, and the ``ModelAdmin`` class gives you
+the ability define your own form::
 
     class ArticleAdmin(admin.ModelAdmin):
         form = MyArticleAdminForm
@@ -627,11 +626,9 @@ any field::
             # do something that validates your data
             return self.cleaned_data["name"]
 
-It is important you use a ``ModelForm`` here otherwise things can break. See
-the `forms`_ documentation on `custom validation`_ for more information.
-
-.. _forms: ../forms/
-.. _custom validation: ../forms/#custom-form-and-field-validation
+It is important you use a ``ModelForm`` here otherwise things can break. See the
+:ref:`forms <ref-forms-index>` documentation on :ref:`custom validation
+<ref-forms-validation>` for more information.
 
 ``InlineModelAdmin`` objects
 ============================
@@ -678,9 +675,7 @@ more than one foreign key to the same parent model.
 
 This defaults to ``BaseInlineFormSet``. Using your own formset can give you
 many possibilities of customization. Inlines are built around
-`model formsets`_.
-
-.. _model formsets: ../modelforms/#model-formsets
+:ref:`model formsets <model-formsets>`.
 
 ``form``
 ~~~~~~~~
@@ -693,18 +688,15 @@ inline.
 ~~~~~~~~~
 
 This controls the number of extra forms the formset will display in addition
-to the initial forms. See the `formsets documentation`_ for more information.
-
-.. _formsets documentation: ../forms/#formsets
+to the initial forms. See the
+:ref:`formsets documentation <topics-forms-formsets>` for more information.
 
 ``max_num``
 ~~~~~~~~~~~
 
 This controls the maximum number of forms to show in the inline. This doesn't
 directly correlate to the number of objects, but can if the value is small
-enough. See `max_num in formsets`_ for more information.
-
-.. _max_num in formsets: ../modelforms/#limiting-the-number-of-objects-editable
+enough. See :ref:`model-formsets-max-num` for more information.
 
 ``raw_id_fields``
 ~~~~~~~~~~~~~~~~~
@@ -852,9 +844,8 @@ example app::
 
 ``django.contrib.contenttypes.generic`` provides both a ``GenericTabularInline``
 and ``GenericStackedInline`` and behave just like any other inline. See the
-`contenttypes documentation`_ for more specific information.
-
-.. _contenttypes documentation: ../contenttypes/
+:ref:`contenttypes documentation <ref-contrib-contenttypes>` for more specific
+information.
 
 ``AdminSite`` objects
 =====================
diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt
new file mode 100644
index 0000000000..03f5ff1281
--- /dev/null
+++ b/docs/ref/contrib/auth.txt
@@ -0,0 +1,6 @@
+.. _ref-contrib-auth:
+
+``django.contrib.auth``
+=======================
+
+See :ref:`topics-auth`.
diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt
new file mode 100644
index 0000000000..fe9a32b64f
--- /dev/null
+++ b/docs/ref/contrib/contenttypes.txt
@@ -0,0 +1,347 @@
+.. _ref-contrib-contenttypes:
+
+==========================
+The contenttypes framework
+==========================
+
+.. module:: django.contrib.contenttypes
+   :synopsis: Provides generic interface to installed models.
+
+Django includes a :mod:`contenttypes` application that can track all of
+the models installed in your Django-powered project, providing a
+high-level, generic interface for working with your models.
+
+Overview
+========
+
+At the heart of the contenttypes application is the
+:class:`~django.contrib.contenttypes.models.ContentType` model, which lives at
+``django.contrib.contenttypes.models.ContentType``. Instances of
+:class:`~django.contrib.contenttypes.models.ContentType` represent and store
+information about the models installed in your project, and new instances of
+:class:`~django.contrib.contenttypes.models.ContentType` are automatically
+created whenever new models are installed.
+
+Instances of :class:`~django.contrib.contenttypes.models.ContentType` have
+methods for returning the model classes they represent and for querying objects
+from those models. :class:`~django.contrib.contenttypes.models.ContentType`
+also has a :ref:`custom manager <custom-managers>` that adds methods for
+working with :class:`~django.contrib.contenttypes.models.ContentType` and for
+obtaining instances of :class:`~django.contrib.contenttypes.models.ContentType`
+for a particular model.
+
+Relations between your models and
+:class:`~django.contrib.contenttypes.models.ContentType` can also be used to
+enable "generic" relationships between an instance of one of your
+models and instances of any model you have installed.
+
+Installing the contenttypes framework
+=====================================
+
+The contenttypes framework is included in the default
+:setting:`INSTALLED_APPS` list created by ``django-admin.py startproject``,
+but if you've removed it or if you manually set up your
+:setting:`INSTALLED_APPS` list, you can enable it by adding
+``'django.contrib.contenttypes'`` to your :setting:`INSTALLED_APPS` setting.
+
+It's generally a good idea to have the contenttypes framework
+installed; several of Django's other bundled applications require it:
+
+    * The admin application uses it to log the history of each object
+      added or changed through the admin interface.
+
+    * Django's :mod:`authentication framework <django.contrib.auth>` uses it
+      to tie user permissions to specific models.
+
+    * Django's comments system (:mod:`django.contrib.comments`) uses it to
+      "attach" comments to any installed model.
+
+The ``ContentType`` model
+=========================
+
+.. class:: models.ContentType
+
+    Each instance of :class:`~django.contrib.contenttypes.models.ContentType`
+    has three fields which, taken together, uniquely describe an installed model:
+
+    .. attribute:: models.ContentType.app_label
+
+        The name of the application the model is part of. This is taken from
+        the :attr:`app_label` attribute of the model, and includes only the *last*
+        part of the application's Python import path;
+        "django.contrib.contenttypes", for example, becomes an :attr:`app_label`
+        of "contenttypes".
+
+    .. attribute:: models.ContentType.model
+
+        The name of the model class.
+
+    .. attribute:: models.ContentType.name
+
+        The human-readable name of the model. This is taken from the
+        :attr:`verbose_name <django.db.models.fields.Field.verbose_name>`
+        attribute of the model.
+
+Let's look at an example to see how this works. If you already have
+the contenttypes application installed, and then add
+:mod:`the sites application <django.contrib.sites>` to your
+:setting:`INSTALLED_APPS` setting and run ``manage.py syncdb`` to install it,
+the model :class:`django.contrib.sites.models.Site` will be installed into
+your database. Along with it a new instance of
+:class:`~django.contrib.contenttypes.models.ContentType` will be
+created with the following values:
+
+    * :attr:`app_label` will be set to ``'sites'`` (the last part of the Python
+      path "django.contrib.sites").
+
+    * :attr:`model` will be set to ``'site'``.
+
+    * :attr:`name` will be set to ``'site'``.
+
+.. _the verbose_name attribute: ../model-api/#verbose_name
+
+Methods on ``ContentType`` instances
+====================================
+
+.. class:: models.ContentType
+
+    Each :class:`~django.contrib.contenttypes.models.ContentType` instance has
+    methods that allow you to get from a
+    :class:`~django.contrib.contenttypes.models.ContentType` instance to the model
+    it represents, or to retrieve objects from that model:
+
+.. method:: models.ContentType.get_object_for_this_type(**kwargs)
+
+    Takes a set of valid :ref:`lookup arguments <field-lookups-intro>` for the
+    model the :class:`~django.contrib.contenttypes.models.ContentType`
+    represents, and does :ref:`a get() lookup <get-kwargs>` on that model,
+    returning the corresponding object.
+
+.. method:: models.ContentType.model_class()
+
+    Returns the model class represented by this
+    :class:`~django.contrib.contenttypes.models.ContentType` instance.
+
+For example, we could look up the
+:class:`~django.contrib.contenttypes.models.ContentType` for the
+:class:`~django.contrib.auth.models.User` model::
+
+    >>> from django.contrib.contenttypes.models import ContentType
+    >>> user_type = ContentType.objects.get(app_label="auth", model="user")
+    >>> user_type
+    <ContentType: user>
+
+And then use it to query for a particular ``User``, or to get access
+to the ``User`` model class::
+
+    >>> user_type.model_class()
+    <class 'django.contrib.auth.models.User'>
+    >>> user_type.get_object_for_this_type(username='Guido')
+    <User: Guido>
+
+Together,
+:meth:`~django.contrib.contenttypes.models.ContentType.get_object_for_this_type`
+and :meth:`~django.contrib.contenttypes.models.ContentType.model_class`
+enable two extremely important use cases:
+
+    1. Using these methods, you can write high-level generic code that
+       performs queries on any installed model -- instead of importing and using
+       a single specific model class, you can pass an ``app_label`` and
+       ``model`` into a :class:`~django.contrib.contenttypes.models.ContentType`
+       lookup at runtime, and then work with the model class or retrieve objects
+       from it.
+
+    2. You can relate another model to
+       :class:`~django.contrib.contenttypes.models.ContentType` as a way of
+       tying instances of it to particular model classes, and use these methods
+       to get access to those model classes.
+
+Several of Django's bundled applications make use of the latter technique.
+For example,
+:class:`the permissions system <django.contrib.auth.models.Permission` in
+Django's authentication framework uses a
+:class:`~django.contrib.auth.models.Permission` model with a foreign
+key to :class:`~django.contrib.contenttypes.models.ContentType`; this lets
+:class:`~django.contrib.auth.models.Permission` represent concepts like
+"can add blog entry" or "can delete news story".
+
+The ``ContentTypeManager``
+--------------------------
+
+.. class:: models.ContentTypeManager
+
+    :class:`~django.contrib.contenttypes.models.ContentType` also has a custom
+    manager, :class:`~django.contrib.contenttypes.models.ContentTypeManager`,
+    which adds the following methods:
+
+    .. method:: models.ContentTypeManager.clear_cache()
+
+        Clears an internal cache used by
+        :class:`~django.contrib.contenttypes.models.ContentType>` to keep track
+        of which models for which it has created
+        :class:`django.contrib.contenttypes.models.ContentType>` instances. You
+        probably won't ever need to call this method yourself; Django will call
+        it automatically when it's needed.
+
+    .. method:: models.ContentTypeManager.get_for_model(model)
+
+        Takes either a model class or an instance of a model, and returns the
+        :class:`~django.contrib.contenttypes.models.ContentType` instance
+        representing that model.
+
+The :meth:`~models.ContentTypeManager.get_for_model()` method is especially useful when you know you
+need to work with a :class:`ContentType <django.contrib.contenttypes.models.ContentType>` but don't want to go to the
+trouble of obtaining the model's metadata to perform a manual lookup::
+
+    >>> from django.contrib.auth.models import User
+    >>> user_type = ContentType.objects.get_for_model(User)
+    >>> user_type
+    <ContentType: user>
+
+.. _generic-relations:
+
+Generic relations
+=================
+
+Adding a foreign key from one of your own models to
+:class:`~django.contrib.contenttypes.models.ContentType` allows your model to
+effectively tie itself to another model class, as in the example of the
+:class:`~django.contrib.auth.models.Permission` model above. But it's possible
+to go one step further and use
+:class:`~django.contrib.contenttypes.models.ContentType` to enable truly
+generic (sometimes called "polymorphic") relationships between models.
+
+A simple example is a tagging system, which might look like this::
+
+    from django.db import models
+    from django.contrib.contenttypes.models import ContentType
+    from django.contrib.contenttypes import generic
+
+    class TaggedItem(models.Model):
+        tag = models.SlugField()
+        content_type = models.ForeignKey(ContentType)
+        object_id = models.PositiveIntegerField()
+        content_object = generic.GenericForeignKey('content_type', 'object_id')
+
+       def __unicode__(self):
+           return self.tag
+
+A normal :class:`~django.db.models.fields.related.ForeignKey` can only "point
+to" one other model, which means that if the ``TaggedItem`` model used a
+:class:`~django.db.models.fields.related.ForeignKey` it would have to
+choose one and only one model to store tags for. The contenttypes
+application provides a special field type --
+:class:`django.contrib.contenttypes.generic.GenericForeignKey` -- which
+works around this and allows the relationship to be with any
+model. There are three parts to setting up a
+:class:`~django.contrib.contenttypes.generic.GenericForeignKey`:
+
+    1. Give your model a :class:`~django.db.models.fields.related.ForeignKey`
+       to :class:`~django.contrib.contenttypes.models.ContentType`.
+
+    2. Give your model a field that can store a primary-key value from the
+       models you'll be relating to. (For most models, this means an
+       :class:`~django.db.models.fields.IntegerField` or
+       :class:`~django.db.models.fields.PositiveIntegerField`.)
+
+       This field must be of the same type as the primary key of the models
+       that will be involved in the generic relation. For example, if you use
+       :class:`~django.db.models.fields.IntegerField`, you won't be able to
+       form a generic relation with a model that uses a
+       :class:`~django.db.models.fields.CharField` as a primary key.
+
+    3. Give your model a
+       :class:`~django.contrib.contenttypes.generic.GenericForeignKey`, and
+       pass it the names of the two fields described above. If these fields
+       are named "content_type" and "object_id", you can omit this -- those
+       are the default field names
+       :class:`~django.contrib.contenttypes.generic.GenericForeignKey` will
+       look for.
+
+This will enable an API similar to the one used for a normal
+:class:`~django.db.models.fields.related.ForeignKey`;
+each ``TaggedItem`` will have a ``content_object`` field that returns the
+object it's related to, and you can also assign to that field or use it when
+creating a ``TaggedItem``::
+
+    >>> from django.contrib.auth.models import User
+    >>> guido = User.objects.get(username='Guido')
+    >>> t = TaggedItem(content_object=guido, tag='bdfl')
+    >>> t.save()
+    >>> t.content_object
+    <User: Guido>
+
+Due to the way :class:`~django.contrib.contenttypes.generic.GenericForeignKey`
+is implemented, you cannot use such fields directly with filters (``filter()``
+and ``exclude()``, for example) via the database API. They aren't normal field
+objects. These examples will *not* work::
+
+    # This will fail
+    >>> TaggedItem.objects.filter(content_object=guido)
+    # This will also fail
+    >>> TaggedItem.objects.get(content_object=guido)
+
+Reverse generic relations
+-------------------------
+
+If you know which models you'll be using most often, you can also add
+a "reverse" generic relationship to enable an additional API. For example::
+
+    class Bookmark(models.Model):
+        url = models.URLField()
+        tags = generic.GenericRelation(TaggedItem)
+
+``Bookmark`` instances will each have a ``tags`` attribute, which can
+be used to retrieve their associated ``TaggedItems``::
+
+    >>> b = Bookmark(url='http://www.djangoproject.com/')
+    >>> b.save()
+    >>> t1 = TaggedItem(content_object=b, tag='django')
+    >>> t1.save()
+    >>> t2 = TaggedItem(content_object=b, tag='python')
+    >>> t2.save()
+    >>> b.tags.all()
+    [<TaggedItem: django>, <TaggedItem: python>]
+
+If you don't add the reverse relationship, you can do the lookup manually::
+
+    >>> b = Bookmark.objects.get(url='http://www.djangoproject.com/)
+    >>> bookmark_type = ContentType.objects.get_for_model(b)
+    >>> TaggedItem.objects.filter(content_type__pk=bookmark_type.id,
+    ...                           object_id=b.id)
+    [<TaggedItem: django>, <TaggedItem: python>]
+
+Note that if you delete an object that has a
+:class:`~django.contrib.contenttypes.generic.GenericRelation`, any objects
+which have a :class:`~django.contrib.contenttypes.generic.GenericForeignKey`
+pointing at it will be deleted as well. In the example above, this means that
+if a ``Bookmark`` object were deleted, any ``TaggedItem`` objects pointing at
+it would be deleted at the same time.
+
+Generic relations in forms and admin
+------------------------------------
+
+:mod:`django.contrib.contenttypes.generic` provides both a 
+:class:`~django.contrib.contenttypes.generic.GenericInlineFormSet`
+and :class:`~django.contrib.contenttypes.generic.GenericInlineModelAdmin`.
+This enables the use of generic relations in forms and the admin. See the
+:ref:`model formset <topics-forms-modelforms>` and
+:ref:`admin <ref-contrib-admin>` documentation for more information.
+
+.. class:: generic.GenericInlineModelAdmin
+
+    The :class:`~django.contrib.contenttypes.generic.GenericInlineModelAdmin`
+    class inherits all properties from an
+    :class:`~django.contrib.admin.options.InlineModelAdmin` class. However,
+    it adds a couple of its own for working with the generic relation:
+
+    .. attribute:: generic.GenericInlineModelAdmin.ct_field
+
+        The name of the
+        :class:`~django.contrib.contenttypes.models.ContentType` foreign key
+        field on the model. Defaults to ``content_type``.
+    
+    .. attribute:: generic.GenericInlineModelAdmin.ct_fk_field
+    
+        The name of the integer field that represents the ID of the related
+        object. Defaults to ``object_id``.
diff --git a/docs/csrf.txt b/docs/ref/contrib/csrf.txt
similarity index 90%
rename from docs/csrf.txt
rename to docs/ref/contrib/csrf.txt
index ba04fa67cd..cf0fe8a3bf 100644
--- a/docs/csrf.txt
+++ b/docs/ref/contrib/csrf.txt
@@ -1,7 +1,12 @@
+.. _ref-contrib-csrf:
+
 =====================================
 Cross Site Request Forgery protection
 =====================================
 
+.. module:: django.contrib.csrf
+   :synopsis: Protects against Cross Site Request Forgeries
+
 The CsrfMiddleware class provides easy-to-use protection against
 `Cross Site Request Forgeries`_.  This type of attack occurs when a malicious
 Web site creates a link or form button that is intended to perform some action
@@ -12,13 +17,13 @@ The first defense against CSRF attacks is to ensure that GET requests
 are side-effect free.  POST requests can then be protected by adding this
 middleware into your list of installed middleware.
 
-.. _Cross Site Request Forgeries:  http://www.squarefree.com/securitytips/web-developers.html#CSRF
+.. _Cross Site Request Forgeries: http://www.squarefree.com/securitytips/web-developers.html#CSRF
 
 How to use it
 =============
 
 Add the middleware ``'django.contrib.csrf.middleware.CsrfMiddleware'`` to
-your list of middleware classes, ``MIDDLEWARE_CLASSES``. It needs to process
+your list of middleware classes, :setting:`MIDDLEWARE_CLASSES`. It needs to process
 the response after the SessionMiddleware, so must come before it in the
 list. It also must process the response before things like compression
 happen to the response, so it must come after GZipMiddleware in the list.
@@ -68,4 +73,4 @@ it sends fragments of HTML in JavaScript document.write statements)
 you might bypass the filter that adds the hidden field to the form,
 in which case form submission will always fail.  It may still be possible
 to use the middleware, provided you can find some way to get the
-CSRF token and ensure that is included when your form is submitted.
+CSRF token and ensure that is included when your form is submitted.
\ No newline at end of file
diff --git a/docs/databrowse.txt b/docs/ref/contrib/databrowse.txt
similarity index 58%
rename from docs/databrowse.txt
rename to docs/ref/contrib/databrowse.txt
index 72e1c71720..c4da2fe929 100644
--- a/docs/databrowse.txt
+++ b/docs/ref/contrib/databrowse.txt
@@ -1,7 +1,12 @@
+.. _ref-contrib-databrowse:
+
 ==========
 Databrowse
 ==========
 
+.. module:: django.contrib.databrowse
+   :synopsis: Databrowse is a Django application that lets you browse your data.
+
 Databrowse is a Django application that lets you browse your data.
 
 As the Django admin dynamically creates an admin interface by introspecting
@@ -23,14 +28,15 @@ How to use Databrowse
     1. Point Django at the default Databrowse templates. There are two ways to
        do this:
 
-       * Add ``'django.contrib.databrowse'`` to your ``INSTALLED_APPS``
-         setting. This will work if your ``TEMPLATE_LOADERS`` setting includes
-         the ``app_directories`` template loader (which is the case by
-         default). See the `template loader docs`_ for more.
+       * Add ``'django.contrib.databrowse'`` to your :setting:`INSTALLED_APPS`
+         setting. This will work if your :setting:`TEMPLATE_LOADERS` setting
+         includes the ``app_directories`` template loader (which is the case by
+         default). See the :ref:`template loader docs <template-loaders>` for
+         more.
 
        * Otherwise, determine the full filesystem path to the
-         ``django/contrib/databrowse/templates`` directory, and add that
-         directory to your ``TEMPLATE_DIRS`` setting.
+         `:file:`django/contrib/databrowse/templates` directory, and add that
+         directory to your :setting:`TEMPLATE_DIRS` setting.
 
     2. Register a number of models with the Databrowse site::
 
@@ -42,10 +48,11 @@ How to use Databrowse
 
        Note that you should register the model *classes*, not instances.
 
-       It doesn't matter where you put this, as long as it gets executed at
-       some point. A good place for it is in your URLconf file (``urls.py``).
+       It doesn't matter where you put this, as long as it gets executed at some
+       point. A good place for it is in your :ref:`URLconf file
+       <topics-http-urls>` (``urls.py``).
 
-    3. Change your URLconf to import the ``databrowse`` module::
+    3. Change your URLconf to import the :mod:`~django.contrib.databrowse` module::
 
            from django.contrib import databrowse
 
@@ -66,21 +73,20 @@ code. Simply add the following import to your URLconf::
 
     from django.contrib.auth.decorators import login_required
 
-Then modify the URLconf so that the ``databrowse.site.root`` view is decorated
-with ``login_required``::
+Then modify the :ref:`URLconf <topics-http-urls>` so that the
+:func:`databrowse.site.root` view is decorated with
+:func:`django.contrib.auth.decorators.login_required`::
 
     (r'^databrowse/(.*)', login_required(databrowse.site.root)),
 
-If you haven't already added support for user logins to your URLconf, as
-described in the `user authentication docs`_, then you will need to do so
-now with the following mapping::
+If you haven't already added support for user logins to your :ref:`URLconf
+<topics-http-urls>`, as described in the :ref:`user authentication docs
+<ref-contrib-auth>`, then you will need to do so now with the following
+mapping::
 
     (r'^accounts/login/$', 'django.contrib.auth.views.login'),
 
 The final step is to create the login form required by
-``django.contrib.auth.views.login``. The `user authentication docs`_
-provide full details and a sample template that can be used for this
-purpose.
-
-.. _template loader docs: ../templates_python/#loader-types
-.. _user authentication docs: ../authentication/
+:func:`django.contrib.auth.views.login`. The
+:ref:`user authentication docs <ref-contrib-auth>` provide full details and a
+sample template that can be used for this purpose.
diff --git a/docs/flatpages.txt b/docs/ref/contrib/flatpages.txt
similarity index 51%
rename from docs/flatpages.txt
rename to docs/ref/contrib/flatpages.txt
index f1a354c653..828a4fc0f2 100644
--- a/docs/flatpages.txt
+++ b/docs/ref/contrib/flatpages.txt
@@ -1,7 +1,12 @@
+.. _ref-contrib-flatpages:
+
 =================
 The flatpages app
 =================
 
+.. module:: django.contrib.flatpages
+   :synopsis: A framework for managing simple ?flat? HTML content in a database.
+
 Django comes with an optional "flatpages" application. It lets you store simple
 "flat" HTML content in a database and handles the management for you via
 Django's admin interface and a Python API.
@@ -21,6 +26,7 @@ content in a custom template.
 
 Here are some examples of flatpages on Django-powered sites:
 
+    * http://www.chicagocrime.org/about/
     * http://www.everyblock.com/about/
     * http://www.lawrence.com/about/contact/
 
@@ -29,17 +35,18 @@ Installation
 
 To install the flatpages app, follow these steps:
 
-    1. Install the `sites framework`_ by adding ``'django.contrib.sites'`` to
-       your INSTALLED_APPS_ setting, if it's not already in there.
-    2. Add ``'django.contrib.flatpages'`` to your INSTALLED_APPS_ setting.
+    1. Install the :mod:`sites framework <django.contrib.sites>` by adding
+       ``'django.contrib.sites'`` to your :setting:`INSTALLED_APPS` setting,
+       if it's not already in there.
+       
+    2. Add ``'django.contrib.flatpages'`` to your :setting:`INSTALLED_APPS`
+       setting.
+       
     3. Add ``'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'``
-       to your MIDDLEWARE_CLASSES_ setting.
-    4. Run the command ``manage.py syncdb``.
-
-.. _sites framework: ../sites/
-.. _INSTALLED_APPS: ../settings/#installed-apps
-.. _MIDDLEWARE_CLASSES: ../settings/#middleware-classes
-
+       to your :setting:`MIDDLEWARE_CLASSES` setting.
+       
+    4. Run the command :djadmin:`manage.py syncdb <syncdb>`.
+ 
 How it works
 ============
 
@@ -48,44 +55,47 @@ and ``django_flatpage_sites``. ``django_flatpage`` is a simple lookup table
 that simply maps a URL to a title and bunch of text content.
 ``django_flatpage_sites`` associates a flatpage with a site.
 
-The ``FlatpageFallbackMiddleware`` does all of the work. Each time any Django
-application raises a 404 error, this middleware checks the flatpages database
-for the requested URL as a last resort. Specifically, it checks for a flatpage
-with the given URL with a site ID that corresponds to the SITE_ID_ setting.
+The :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware`
+does all of the work. Each time any Django application raises a 404 error, this
+middleware checks the flatpages database for the requested URL as a last resort.
+Specifically, it checks for a flatpage with the given URL with a site ID that
+corresponds to the :setting:`SITE_ID` setting.
 
 If it finds a match, it follows this algorithm:
 
     * If the flatpage has a custom template, it loads that template. Otherwise,
-      it loads the template ``flatpages/default.html``.
-    * It passes that template a single context variable, ``flatpage``, which is
-      the flatpage object. It uses RequestContext_ in rendering the template.
+      it loads the template :file:`flatpages/default.html`.
+    
+    * It passes that template a single context variable, :data:`flatpage`, which
+      is the flatpage object. It uses
+      :class:`~django.template.context.RequestContext` in rendering the
+      template.
 
 If it doesn't find a match, the request continues to be processed as usual.
 
 The middleware only gets activated for 404s -- not for 500s or responses of any
 other status code.
 
-Note that the order of ``MIDDLEWARE_CLASSES`` matters. Generally, you can put
-``FlatpageFallbackMiddleware`` at the end of the list, because it's a last
-resort.
+Note that the order of :setting:`MIDDLEWARE_CLASSES` matters. Generally, you can
+put :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware` at
+the end of the list, because it's a last resort.
 
-For more on middleware, read the `middleware docs`_.
+For more on middleware, read the :ref:`middleware docs
+<topics-http-middleware>`.
 
 .. admonition:: Ensure that your 404 template works
     
-    Note that the ``FlatpageFallbackMiddleware`` only steps in once
-    another view has successfully produced a 404 response. If another
-    view or middleware class attempts to produce a 404 but ends up
+    Note that the
+    :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware`
+    only steps in once another view has successfully produced a 404 response.
+    If another view or middleware class attempts to produce a 404 but ends up
     raising an exception instead (such as a ``TemplateDoesNotExist``
     exception if your site does not have an appropriate template to
     use for HTTP 404 responses), the response will become an HTTP 500
-    ("Internal Server Error") and the ``FlatpageFallbackMiddleware``
+    ("Internal Server Error") and the
+    :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware`
     will not attempt to serve a flat page.
 
-.. _SITE_ID: ../settings/#site-id
-.. _RequestContext: ../templates_python/#subclassing-context-djangocontext
-.. _middleware docs: ../middleware/
-
 How to add, change and delete flatpages
 =======================================
 
@@ -99,28 +109,32 @@ other object in the system.
 Via the Python API
 ------------------
 
-Flatpages are represented by a standard `Django model`_, which lives in
-`django/contrib/flatpages/models.py`_. You can access flatpage objects via the
-`Django database API`_.
+.. class:: models.FlatPage
+
+    Flatpages are represented by a standard
+    :ref:`Django model <topics-db-models>`,
+    which lives in `django/contrib/flatpages/models.py`_. You can access
+    flatpage objects via the :ref:`Django database API <topics-db-queries>`.
 
-.. _Django model: ../model-api/
 .. _django/contrib/flatpages/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/flatpages/models.py
-.. _Django database API: ../db-api/
 
 Flatpage templates
 ==================
 
-By default, flatpages are rendered via the template ``flatpages/default.html``,
-but you can override that for a particular flatpage.
+By default, flatpages are rendered via the template
+:file:`flatpages/default.html`, but you can override that for a particular
+flatpage.
 
-Creating the ``flatpages/default.html`` template is your responsibility; in
-your template directory, just create a ``flatpages`` directory containing a
-file ``default.html``.
+Creating the :file:`flatpages/default.html` template is your responsibility;
+in your template directory, just create a :file:`flatpages` directory
+containing a file :file:`default.html`.
 
-Flatpage templates are passed a single context variable, ``flatpage``, which is
-the flatpage object.
+Flatpage templates are passed a single context variable, :data:`flatpage`,
+which is the flatpage object.
 
-Here's a sample ``flatpages/default.html`` template::
+Here's a sample :file:`flatpages/default.html` template:
+
+.. code-block:: html+django
 
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
         "http://www.w3.org/TR/REC-html40/loose.dtd">
@@ -135,7 +149,5 @@ Here's a sample ``flatpages/default.html`` template::
 
 Since you're already entering raw HTML into the admin page for a flatpage,
 both ``flatpage.title`` and ``flatpage.content`` are marked as **not**
-requiring `automatic HTML escaping`_  in the template.
-
-.. _automatic HTML escaping: ../templates/#automatic-html-escaping
-
+requiring :ref:`automatic HTML escaping <automatic-html-escaping>` in the
+template.
diff --git a/docs/ref/contrib/formtools/form-preview.txt b/docs/ref/contrib/formtools/form-preview.txt
new file mode 100644
index 0000000000..fa3fe16e7e
--- /dev/null
+++ b/docs/ref/contrib/formtools/form-preview.txt
@@ -0,0 +1,110 @@
+.. _ref-contrib-formtools-form-preview:
+
+============
+Form preview
+============
+
+.. module:: django.contrib.formtools
+    :synopsis: Displays an HTML form, forces a preview, then does something
+               with the submission.
+
+Django comes with an optional "form preview" application that helps automate
+the following workflow:
+
+"Display an HTML form, force a preview, then do something with the submission."
+
+To force a preview of a form submission, all you have to do is write a short
+Python class.
+
+Overview
+=========
+
+Given a :class:`django.forms.Form` subclass that you define, this
+application takes care of the following workflow:
+
+   1. Displays the form as HTML on a Web page.
+   2. Validates the form data when it's submitted via POST.
+      a. If it's valid, displays a preview page.
+      b. If it's not valid, redisplays the form with error messages.
+   3. When the "confirmation" form is submitted from the preview page, calls
+       a hook that you define -- a
+       :meth:`~django.contrib.formtools.FormPreview.done()` method that gets
+       passed the valid data.
+
+The framework enforces the required preview by passing a shared-secret hash to
+the preview page via hidden form fields. If somebody tweaks the form parameters
+on the preview page, the form submission will fail the hash-comparison test.
+
+How to use ``FormPreview``
+==========================
+
+    1. Point Django at the default FormPreview templates. There are two ways to
+       do this:
+
+            * Add ``'django.contrib.formtools'`` to your
+              :setting:`INSTALLED_APPS` setting. This will work if your
+              :setting:`TEMPLATE_LOADERS` setting includes the
+              ``app_directories`` template loader (which is the case by
+              default). See the :ref:`template loader docs <template-loaders>`
+              for more.
+
+            * Otherwise, determine the full filesystem path to the
+              :file:`django/contrib/formtools/templates` directory, and add that
+              directory to your :setting:`TEMPLATE_DIRS` setting.
+
+    2. Create a :class:`~django.contrib.formtools.FormPreview` subclass that
+       overrides the :meth:`~django.contrib.formtools.FormPreview.done()`
+       method::
+
+           from django.contrib.formtools.preview import FormPreview
+           from myapp.models import SomeModel
+
+           class SomeModelFormPreview(FormPreview):
+
+               def done(self, request, cleaned_data):
+                   # Do something with the cleaned_data, then redirect
+                   # to a "success" page.
+                   return HttpResponseRedirect('/form/success')
+
+       This method takes an :class:`~django.http.HttpRequest` object and a
+       dictionary of the form data after it has been validated and cleaned.
+       It should return an :class:`~django.http.HttpResponseRedirect` that
+       is the end result of the form being submitted.
+
+    3. Change your URLconf to point to an instance of your
+       :class:`~django.contrib.formtools.FormPreview` subclass::
+
+           from myapp.preview import SomeModelFormPreview
+           from myapp.models import SomeModel
+           from django import forms
+
+       ...and add the following line to the appropriate model in your URLconf::
+
+           (r'^post/$', SomeModelFormPreview(SomeModelForm)),
+
+       where ``SomeModelForm`` is a Form or ModelForm class for the model.
+
+    4. Run the Django server and visit :file:`/post/` in your browser.
+
+``FormPreview`` classes
+=======================
+
+.. class:: FormPreview
+
+A :class:`~django.contrib.formtools.FormPreview` class is a simple Python class
+that represents the preview workflow.
+:class:`~django.contrib.formtools.FormPreview` classes must subclass
+``django.contrib.formtools.preview.FormPreview`` and override the
+:meth:`~django.contrib.formtools.FormPreview.done()` method. They can live
+anywhere in your codebase.
+
+``FormPreview`` templates
+=========================
+
+By default, the form is rendered via the template :file:`formtools/form.html`,
+and the preview page is rendered via the template :file:`formtools.preview.html`.
+These values can be overridden for a particular form preview by setting
+:attr:`~django.contrib.formtools.FormPreview.preview_template` and
+:attr:`~django.contrib.formtools.FormPreview.form_template` attributes on the
+FormPreview subclass. See :file:`django/contrib/formtools/templates` for the
+default templates.
diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt
new file mode 100644
index 0000000000..fe8d478d40
--- /dev/null
+++ b/docs/ref/contrib/formtools/form-wizard.txt
@@ -0,0 +1,316 @@
+.. _ref-contrib-formtools-form-wizard:
+
+===========
+Form wizard
+===========
+
+.. module:: django.contrib.formtools.wizard
+    :synopsis: Splits forms across multiple Web pages.
+
+**New in Django development version.**
+
+Django comes with an optional "form wizard" application that splits
+:ref:`forms <topics-forms-index>` across multiple Web pages. It maintains
+state in hashed HTML :samp:`<input type="hidden">` fields, and the data isn't
+processed server-side until the final form is submitted.
+
+You might want to use this if you have a lengthy form that would be too
+unwieldy for display on a single page. The first page might ask the user for
+core information, the second page might ask for less important information,
+etc.
+
+The term "wizard," in this context, is `explained on Wikipedia`_.
+
+.. _explained on Wikipedia: http://en.wikipedia.org/wiki/Wizard_%28software%29
+.. _forms: ../forms/
+
+How it works
+============
+
+Here's the basic workflow for how a user would use a wizard:
+
+    1. The user visits the first page of the wizard, fills in the form and
+       submits it.
+    2. The server validates the data. If it's invalid, the form is displayed
+       again, with error messages. If it's valid, the server calculates a
+       secure hash of the data and presents the user with the next form,
+       saving the validated data and hash in :samp:`<input type="hidden">`
+       fields.
+    3. Step 1 and 2 repeat, for every subsequent form in the wizard.
+    4. Once the user has submitted all the forms and all the data has been
+       validated, the wizard processes the data -- saving it to the database,
+       sending an e-mail, or whatever the application needs to do.
+
+Usage
+=====
+
+This application handles as much machinery for you as possible. Generally, you
+just have to do these things:
+
+    1. Define a number of :mod:`django.forms`
+       :class:`~django.forms.forms.Form` classes -- one per wizard page.
+       
+    2. Create a :class:`~django.contrib.formtools.wizard.FormWizard` class
+       that specifies what to do once all of your forms have been submitted
+       and validated. This also lets you override some of the wizard's behavior.
+       
+    3. Create some templates that render the forms. You can define a single,
+       generic template to handle every one of the forms, or you can define a
+       specific template for each form.
+       
+    4. Point your URLconf at your
+       :class:`~django.contrib.formtools.wizard.FormWizard` class.
+
+Defining ``Form`` classes
+=========================
+
+The first step in creating a form wizard is to create the :class:`~django.forms.forms.Form` classes.
+These should be standard :mod:`django.forms`
+:class:`~django.forms.forms.Form` classes, covered in the
+:ref:`forms documentation <topics-forms-index>`.
+
+These classes can live anywhere in your codebase, but convention is to put them
+in a file called :file:`forms.py` in your application.
+
+For example, let's write a "contact form" wizard, where the first page's form
+collects the sender's e-mail address and subject, and the second page collects
+the message itself. Here's what the :file:`forms.py` might look like::
+
+   from django import forms
+
+    class ContactForm1(forms.Form):
+        subject = forms.CharField(max_length=100)
+        sender = forms.EmailField()
+
+    class ContactForm2(forms.Form):
+        message = forms.CharField(widget=forms.Textarea)
+
+**Important limitation:** Because the wizard uses HTML hidden fields to store
+data between pages, you may not include a :class:`~django.forms.fields.FileField`
+in any form except the last one.
+
+Creating a ``FormWizard`` class
+===============================
+
+The next step is to create a :class:`~django.contrib.formtools.wizard.FormWizard`
+class, which should be a subclass of ``django.contrib.formtools.wizard.FormWizard``.
+
+As your :class:`~django.forms.forms.Form` classes, this
+:class:`~django.contrib.formtools.wizard.FormWizard` class can live anywhere
+in your codebase, but convention is to put it in :file:`forms.py`.
+
+The only requirement on this subclass is that it implement a
+:meth:`~django.contrib.formtools.wizard.FormWizard.done()` method,
+which specifies what should happen when the data for *every* form is submitted
+and validated. This method is passed two arguments:
+
+    * ``request`` -- an :class:`~django.http.HttpRequest` object
+    * ``form_list`` -- a list of :mod:`django.forms`
+      :class:`~django.forms.forms.Form` classes
+
+In this simplistic example, rather than perform any database operation, the
+method simply renders a template of the validated data::
+
+    from django.shortcuts import render_to_response
+    from django.contrib.formtools.wizard import FormWizard
+
+    class ContactWizard(FormWizard):
+        def done(self, request, form_list):
+            return render_to_response('done.html', {
+                'form_data': [form.cleaned_data for form in form_list],
+            })
+
+Note that this method will be called via ``POST``, so it really ought to be a
+good Web citizen and redirect after processing the data. Here's another
+example::
+
+    from django.http import HttpResponseRedirect
+    from django.contrib.formtools.wizard import FormWizard
+
+    class ContactWizard(FormWizard):
+        def done(self, request, form_list):
+            do_something_with_the_form_data(form_list)
+            return HttpResponseRedirect('/page-to-redirect-to-when-done/')
+
+See the section `Advanced FormWizard methods`_ below to learn about more
+:class:`~django.contrib.formtools.wizard.FormWizard` hooks.
+
+Creating templates for the forms
+================================
+
+Next, you'll need to create a template that renders the wizard's forms. By
+default, every form uses a template called :file:`forms/wizard.html`. (You can
+change this template name by overriding
+:meth:`~django.contrib.formtools.wizard..get_template()`, which is documented
+below. This hook also allows you to use a different template for each form.)
+
+This template expects the following context:
+
+    * ``step_field`` -- The name of the hidden field containing the step.
+    * ``step0`` -- The current step (zero-based).
+    * ``step`` -- The current step (one-based).
+    * ``step_count`` -- The total number of steps.
+    * ``form`` -- The :class:`~django.forms.forms.Form` instance for the
+      current step (either empty or with errors).
+    * ``previous_fields`` -- A string representing every previous data field,
+      plus hashes for completed forms, all in the form of hidden fields. Note
+      that you'll need to run this through the
+      :meth:`~django.template.defaultfilters.safe` template filter, to prevent
+      auto-escaping, because it's raw HTML.
+
+It will also be passed any objects in :data:`extra_context`, which is a
+dictionary you can specify that contains extra values to add to the context.
+You can specify it in two ways:
+
+    * Set the :attr:`~django.contrib.formtools.wizard.FormWizard.extra_context`
+      attribute on your :class:`~django.contrib.formtools.wizard.FormWizard`
+      subclass to a dictionary.
+
+    * Pass :attr:`~django.contrib.formtools.wizard.FormWizard.extra_context`
+      as extra parameters in the URLconf.
+
+Here's a full example template::
+  
+    {% extends "base.html" %}
+
+    {% block content %}
+    <p>Step {{ step }} of {{ step_count }}</p>
+    <form action="." method="post">
+    <table>
+    {{ form }}
+    </table>
+    <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
+    {{ previous_fields|safe }}
+    <input type="submit">
+    </form>
+    {% endblock %}
+
+Note that ``previous_fields``, ``step_field`` and ``step0`` are all required
+for the wizard to work properly.
+
+Hooking the wizard into a URLconf
+=================================
+
+Finally, give your new :class:`~django.contrib.formtools.wizard.FormWizard`
+object a URL in ``urls.py``. The wizard takes a list of your form objects as
+arguments::
+
+    from django.conf.urls.defaults import *
+    from mysite.testapp.forms import ContactForm1, ContactForm2, ContactWizard
+
+    urlpatterns = patterns('',
+        (r'^contact/$', ContactWizard([ContactForm1, ContactForm2])),
+    )
+
+Advanced FormWizard methods
+===========================
+
+.. class:: FormWizard
+
+    Aside from the :meth:`~django.contrib.formtools.wizard.FormWizard.done()`
+    method, :class:`~django.contrib.formtools.wizard.FormWizard` offers a few
+    advanced method hooks that let you customize how your wizard works.
+
+    Some of these methods take an argument ``step``, which is a zero-based counter
+    representing the current step of the wizard. (E.g., the first form is ``0`` and
+    the second form is ``1``.)
+
+.. method:: FormWizard.prefix_for_step
+
+    Given the step, returns a :class:`~django.forms.forms.Form` prefix to
+    use. By default, this simply uses the step itself. For more, see the
+    :ref:`form prefix documentation <form-prefix>`.
+
+    Default implementation::
+
+        def prefix_for_step(self, step):
+            return str(step)
+
+.. method:: FormWizard.render_hash_failure
+
+    Renders a template if the hash check fails. It's rare that you'd need to
+    override this.
+
+    Default implementation::
+
+        def render_hash_failure(self, request, step):
+            return self.render(self.get_form(step), request, step,
+                context={'wizard_error': 'We apologize, but your form has expired. Please continue filling out the form from this page.'})
+
+.. method:: FormWizard.security_hash
+
+    Calculates the security hash for the given request object and :class:`~django.forms.forms.Form` instance.
+
+    By default, this uses an MD5 hash of the form data and your
+    :setting:`SECRET_KEY` setting. It's rare that somebody would need to override
+    this.
+
+    Example::
+
+        def security_hash(self, request, form):
+            return my_hash_function(request, form)
+
+.. method:: FormWizard.parse_params
+
+    A hook for saving state from the request object and ``args`` / ``kwargs`` that
+    were captured from the URL by your URLconf.
+
+    By default, this does nothing.
+
+    Example::
+
+        def parse_params(self, request, *args, **kwargs):
+            self.my_state = args[0]
+
+.. method:: FormWizard.get_template
+
+    Returns the name of the template that should be used for the given step.
+
+    By default, this returns :file:`'forms/wizard.html'`, regardless of step.
+
+    Example::
+
+        def get_template(self, step):
+            return 'myapp/wizard_%s.html' % step
+
+    If :meth:`~FormWizard.get_template` returns a list of strings, then the wizard will use the
+    template system's :func:`~django.template.loader.select_template()`
+    function,
+    :ref:`explained in the template docs <ref-templates-api-the-python-api>`.
+    This means the system will use the first template that exists on the
+    filesystem. For example::
+
+        def get_template(self, step):
+            return ['myapp/wizard_%s.html' % step, 'myapp/wizard.html']
+
+    .. _explained in the template docs: ../templates_python/#the-python-api
+
+.. method:: FormWizard.render_template
+
+    Renders the template for the given step, returning an
+    :class:`~django.http.HttpResponseRedirect` object.
+
+    Override this method if you want to add a custom context, return a different
+    MIME type, etc. If you only need to override the template name, use
+    :meth:`~FormWizard.get_template` instead.
+
+    The template will be rendered with the context documented in the
+    "Creating templates for the forms" section above.
+
+.. method:: FormWizard.process_step
+
+    Hook for modifying the wizard's internal state, given a fully validated
+    :class:`~django.forms.forms.Form` object. The Form is guaranteed to
+    have clean, valid data.
+
+    This method should *not* modify any of that data. Rather, it might want to set
+    ``self.extra_context`` or dynamically alter ``self.form_list``, based on
+    previously submitted forms.
+
+    Note that this method is called every time a page is rendered for *all*
+    submitted steps.
+
+    The function signature::
+
+        def process_step(self, request, form, step):
+            # ...
diff --git a/docs/ref/contrib/formtools/index.txt b/docs/ref/contrib/formtools/index.txt
new file mode 100644
index 0000000000..92010a25db
--- /dev/null
+++ b/docs/ref/contrib/formtools/index.txt
@@ -0,0 +1,12 @@
+.. _ref-contrib-formtools-index:
+
+django.contrib.formtools
+========================
+
+A set of high-level abstractions for Django forms (:mod:`django.forms`).
+
+.. toctree::
+   :maxdepth: 1
+
+   form-preview
+   form-wizard
diff --git a/docs/ref/contrib/humanize.txt b/docs/ref/contrib/humanize.txt
new file mode 100644
index 0000000000..4a544f037c
--- /dev/null
+++ b/docs/ref/contrib/humanize.txt
@@ -0,0 +1,91 @@
+.. _ref-contrib-humanize:
+
+========================
+django.contrib.humanize
+========================
+
+.. module:: django.contrib.humanize
+   :synopsis: A set of Django template filters useful for adding a "human
+              touch" to data.
+
+A set of Django template filters useful for adding a "human touch" to data.
+
+To activate these filters, add ``'django.contrib.humanize'`` to your
+:setting:`INSTALLED_APPS` setting. Once you've done that, use
+``{% load humanize %}`` in a template, and you'll have access to these filters:
+
+apnumber
+--------
+
+For numbers 1-9, returns the number spelled out. Otherwise, returns the
+number. This follows Associated Press style.
+
+Examples:
+
+    * ``1`` becomes ``'one'``.
+    * ``2`` becomes ``'two'``.
+    * ``10`` becomes ``10``.
+
+You can pass in either an integer or a string representation of an integer.
+
+intcomma
+--------
+
+Converts an integer to a string containing commas every three digits.
+
+Examples:
+
+    * ``4500`` becomes ``'4,500'``.
+    * ``45000`` becomes ``'45,000'``.
+    * ``450000`` becomes ``'450,000'``.
+    * ``4500000`` becomes ``'4,500,000'``.
+
+You can pass in either an integer or a string representation of an integer.
+
+intword
+-------
+
+Converts a large integer to a friendly text representation. Works best for
+numbers over 1 million.
+
+Examples:
+
+    * ``1000000`` becomes ``'1.0 million'``.
+    * ``1200000`` becomes ``'1.2 million'``.
+    * ``1200000000`` becomes ``'1.2 billion'``.
+
+Values up to 1000000000000000 (one quadrillion) are supported.
+
+You can pass in either an integer or a string representation of an integer.
+
+ordinal
+-------
+
+Converts an integer to its ordinal as a string.
+
+Examples:
+
+    * ``1`` becomes ``'1st'``.
+    * ``2`` becomes ``'2nd'``.
+    * ``3`` becomes ``'3rd'``.
+
+You can pass in either an integer or a string representation of an integer.
+
+naturalday
+----------
+
+**New in Django development version**
+
+For dates that are the current day or within one day, return "today",
+"tomorrow" or "yesterday", as appropriate. Otherwise, format the date using
+the passed in format string.
+
+**Argument:** Date formatting string as described in the :ttag:`now` tag.
+
+Examples (when 'today' is 17 Feb 2007):
+
+    * ``16 Feb 2007`` becomes ``yesterday``.
+    * ``17 Feb 2007`` becomes ``today``.
+    * ``18 Feb 2007`` becomes ``tomorrow``.
+    * Any other day is formatted according to given argument or the
+      :setting:`DATE_FORMAT` setting if no argument is given.
diff --git a/docs/add_ons.txt b/docs/ref/contrib/index.txt
similarity index 53%
rename from docs/add_ons.txt
rename to docs/ref/contrib/index.txt
index de1a9136b5..e6c693d905 100644
--- a/docs/add_ons.txt
+++ b/docs/ref/contrib/index.txt
@@ -1,3 +1,5 @@
+.. _ref-contrib-index:
+
 ============================
 The "django.contrib" add-ons
 ============================
@@ -19,14 +21,30 @@ those packages have.
 
 .. _"batteries included" philosophy: http://docs.python.org/tut/node12.html#batteries-included
 
+.. toctree::
+   :maxdepth: 1
+
+   admin
+   auth
+   contenttypes
+   csrf
+   databrowse
+   flatpages
+   formtools/index
+   humanize
+   localflavor
+   redirects
+   sitemaps
+   sites
+   syndication
+   webdesign
+
 admin
 =====
 
 The automatic Django administrative interface. For more information, see
-`Tutorial 2`_ and the `admin documentation`_.
-
-.. _Tutorial 2: ../tutorial02/
-.. _admin documentation: ../admin/
+:ref:`Tutorial 2 <intro-tutorial02>` and the
+:ref:`admin documentation <ref-contrib-admin>`.
 
 Requires the auth_ and contenttypes_ contrib packages to be installed.
 
@@ -35,9 +53,7 @@ auth
 
 Django's authentication framework.
 
-See the `authentication documentation`_.
-
-.. _authentication documentation: ../authentication/
+See :ref:`topics-auth`.
 
 comments
 ========
@@ -50,27 +66,21 @@ contenttypes
 A light framework for hooking into "types" of content, where each installed
 Django model is a separate content type.
 
-See the `contenttypes documentation`_.
-
-.. _contenttypes documentation: ../contenttypes/
+See the :ref:`contenttypes documentation <ref-contrib-contenttypes>`.
 
 csrf
 ====
 
 A middleware for preventing Cross Site Request Forgeries
 
-See the `csrf documentation`_.
-
-.. _csrf documentation: ../csrf/
+See the :ref:`csrf documentation <ref-contrib-csrf>`.
 
 flatpages
 =========
 
 A framework for managing simple "flat" HTML content in a database.
 
-See the `flatpages documentation`_.
-
-.. _flatpages documentation: ../flatpages/
+See the :ref:`flatpages documentation <ref-contrib-flatpages>`.
 
 Requires the sites_ contrib package to be installed as well.
 
@@ -86,97 +96,21 @@ An abstraction of the following workflow:
 
 "Display an HTML form, force a preview, then do something with the submission."
 
-See the `form preview documentation`_.
+See the :ref:`form preview documentation <ref-contrib-formtools-form-preview>`.
 
-.. _form preview documentation: ../form_preview/
+django.contrib.formtools.wizard
+--------------------------------
+
+Splits forms across multiple Web pages.
+
+See the :ref:`form wizard documentation <ref-contrib-formtools-form-wizard>`.
 
 humanize
 ========
 
 A set of Django template filters useful for adding a "human touch" to data.
-To activate these filters, add ``'django.contrib.humanize'`` to your
-``INSTALLED_APPS`` setting. Once you've done that, use ``{% load humanize %}``
-in a template, and you'll have access to these filters:
 
-apnumber
---------
-
-For numbers 1-9, returns the number spelled out. Otherwise, returns the
-number. This follows Associated Press style.
-
-Examples:
-
-    * ``1`` becomes ``'one'``.
-    * ``2`` becomes ``'two'``.
-    * ``10`` becomes ``10``.
-
-You can pass in either an integer or a string representation of an integer.
-
-intcomma
---------
-
-Converts an integer to a string containing commas every three digits.
-
-Examples:
-
-    * ``4500`` becomes ``'4,500'``.
-    * ``45000`` becomes ``'45,000'``.
-    * ``450000`` becomes ``'450,000'``.
-    * ``4500000`` becomes ``'4,500,000'``.
-
-You can pass in either an integer or a string representation of an integer.
-
-intword
--------
-
-Converts a large integer to a friendly text representation. Works best for
-numbers over 1 million.
-
-Examples:
-
-    * ``1000000`` becomes ``'1.0 million'``.
-    * ``1200000`` becomes ``'1.2 million'``.
-    * ``1200000000`` becomes ``'1.2 billion'``.
-
-Values up to 1000000000000000 (one quadrillion) are supported.
-
-You can pass in either an integer or a string representation of an integer.
-
-ordinal
--------
-
-Converts an integer to its ordinal as a string.
-
-Examples:
-
-    * ``1`` becomes ``'1st'``.
-    * ``2`` becomes ``'2nd'``.
-    * ``3`` becomes ``'3rd'``.
-
-You can pass in either an integer or a string representation of an integer.
-
-naturalday
-----------
-
-**New in Django development version**
-
-For dates that are the current day or within one day, return "today",
-"tomorrow" or "yesterday", as appropriate. Otherwise, format the date using
-the passed in format string.
-
-**Argument:** Date formatting string as described in default tag now_.
-
-.. _now: ../templates/#now
-
-Examples (when 'today' is 17 Feb 2007):
-
-    * ``16 Feb 2007`` becomes ``yesterday``.
-    * ``17 Feb 2007`` becomes ``today``.
-    * ``18 Feb 2007`` becomes ``tomorrow``.
-    * Any other day is formatted according to given argument or the
-      `DATE_FORMAT`_ setting if no argument is given.
-
-.. _DATE_FORMAT: ../settings/#date_format
+See the :ref:`humanize documentation <ref-contrib-humanize>`.
 
 localflavor
 ===========
@@ -185,9 +119,9 @@ A collection of various Django snippets that are useful only for a particular
 country or culture. For example, ``django.contrib.localflavor.us.forms``
 contains a ``USZipCodeField`` that you can use to validate U.S. zip codes.
 
-See the `localflavor documentation`_.
+See the :ref:`localflavor documentation <ref-contrib-localflavor>`.
 
-.. _localflavor documentation: ../localflavor/
+.. _ref-contrib-markup:
 
 markup
 ======
@@ -203,7 +137,7 @@ string representing the marked-up text. For example, the ``textile`` filter
 converts text that is marked-up in Textile format to HTML.
 
 To activate these filters, add ``'django.contrib.markup'`` to your
-``INSTALLED_APPS`` setting. Once you've done that, use ``{% load markup %}`` in
+:setting:`INSTALLED_APPS` setting. Once you've done that, use ``{% load markup %}`` in
 a template, and you'll have access to these filters. For more documentation,
 read the source code in django/contrib/markup/templatetags/markup.py.
 
@@ -216,18 +150,14 @@ redirects
 
 A framework for managing redirects.
 
-See the `redirects documentation`_.
-
-.. _redirects documentation: ../redirects/
+See the :ref:`redirects documentation <ref-contrib-redirects>`.
 
 sessions
 ========
 
 A framework for storing data in anonymous sessions.
 
-See the `sessions documentation`_.
-
-.. _sessions documentation: ../sessions/
+See the :ref:`sessions documentation <topics-http-sessions>`.
 
 sites
 =====
@@ -236,27 +166,21 @@ A light framework that lets you operate multiple Web sites off of the same
 database and Django installation. It gives you hooks for associating objects to
 one or more sites.
 
-See the `sites documentation`_.
-
-.. _sites documentation: ../sites/
+See the :ref:`sites documentation <ref-contrib-sites>`.
 
 sitemaps
 ========
 
 A framework for generating Google sitemap XML files.
 
-See the `sitemaps documentation`_.
-
-.. _sitemaps documentation: ../sitemaps/
+See the :ref:`sitemaps documentation <ref-contrib-sitemaps>`.
 
 syndication
 ===========
 
 A framework for generating syndication feeds, in RSS and Atom, quite easily.
 
-See the `syndication documentation`_.
-
-.. _syndication documentation: ../syndication_feeds/
+See the :ref:`syndication documentation <ref-contrib-syndication>`.
 
 webdesign
 =========
@@ -264,9 +188,7 @@ webdesign
 Helpers and utilities targeted primarily at Web *designers* rather than
 Web *developers*.
 
-See the `Web design helpers documentation`_.
-
-.. _Web design helpers documentation: ../webdesign/
+See the :ref:`Web design helpers documentation <ref-contrib-webdesign>`.
 
 Other add-ons
 =============
diff --git a/docs/ref/contrib/localflavor.txt b/docs/ref/contrib/localflavor.txt
new file mode 100644
index 0000000000..9b9a4a38a3
--- /dev/null
+++ b/docs/ref/contrib/localflavor.txt
@@ -0,0 +1,651 @@
+.. _ref-contrib-localflavor:
+
+==========================
+The "local flavor" add-ons
+==========================
+
+.. module:: django.contrib.localflavor
+    :synopsis: A collection of various Django snippets that are useful only for
+               a particular country or culture.
+
+Following its "batteries included" philosophy, Django comes with assorted
+pieces of code that are useful for particular countries or cultures. These are
+called the "local flavor" add-ons and live in the
+:mod:`django.contrib.localflavor` package.
+
+Inside that package, country- or culture-specific code is organized into
+subpackages, named using `ISO 3166 country codes`_.
+
+Most of the ``localflavor`` add-ons are localized form components deriving
+from the :ref:`forms <topics-forms-index>` framework -- for example, a
+:class:`~django.contrib.localflavor.us.forms.USStateField` that knows how to
+validate U.S. state abbreviations, and a
+:class:`~django.contrib.localflavor.fi.forms.FISocialSecurityNumber` that
+knows how to validate Finnish social security numbers.
+
+To use one of these localized components, just import the relevant subpackage.
+For example, here's how you can create a form with a field representing a
+French telephone number::
+
+    from django import forms
+    from django.contrib.localflavor import fr
+
+    class MyForm(forms.Form):
+        my_french_phone_no = fr.forms.FRPhoneNumberField()
+
+Supported countries
+===================
+
+Countries currently supported by :mod:`~django.contrib.localflavor` are:
+
+    * Argentina_
+    * Australia_
+    * Austria_
+    * Brazil_
+    * Canada_
+    * Chile_
+    * Finland_
+    * France_
+    * Germany_
+    * Holland_
+    * Iceland_
+    * India_
+    * Italy_
+    * Japan_
+    * Mexico_
+    * Norway_
+    * Peru_
+    * Poland_
+    * Romania_
+    * Slovakia_
+    * `South Africa`_
+    * Spain_
+    * Switzerland_
+    * `United Kingdom`_
+    * `United States of America`_
+
+The ``django.contrib.localflavor`` package also includes a ``generic`` subpackage,
+containing useful code that is not specific to one particular country or
+culture. Currently, it defines date and datetime input fields based on those
+from :ref:`forms <topics-forms-index>`, but with non-US default formats.
+Here's an example of how to use them::
+
+    from django import forms
+    from django.contrib.localflavor import generic
+
+    class MyForm(forms.Form):
+        my_date_field = generic.forms.DateField()
+
+.. _ISO 3166 country codes: http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm
+.. _Argentina: `Argentina (ar)`_
+.. _Australia: `Australia (au)`_
+.. _Austria: `Austria (at)`_
+.. _Brazil: `Brazil (br)`_
+.. _Canada: `Canada (ca)`_
+.. _Chile: `Chile (cl)`_
+.. _Finland: `Finland (fi)`_
+.. _France: `France (fr)`_
+.. _Germany: `Germany (de)`_
+.. _Holland: `Holland (nl)`_
+.. _Iceland: `Iceland (is\_)`_
+.. _India: `India (in\_)`_
+.. _Italy: `Italy (it)`_
+.. _Japan: `Japan (jp)`_
+.. _Mexico: `Mexico (mx)`_
+.. _Norway: `Norway (no)`_
+.. _Peru: `Peru (pe)`_
+.. _Poland: `Poland (pl)`_
+.. _Romania: `Romania (ro)`_
+.. _Slovakia: `Slovakia (sk)`_
+.. _South Africa: `South Africa (za)`_
+.. _Spain: `Spain (es)`_
+.. _Switzerland: `Switzerland (ch)`_
+.. _United Kingdom: `United Kingdom (uk)`_
+.. _United States of America: `United States of America (us)`_
+
+Adding flavors
+==============
+
+We'd love to add more of these to Django, so please `create a ticket`_ with
+any code you'd like to contribute. One thing we ask is that you please use
+Unicode objects (``u'mystring'``) for strings, rather than setting the encoding
+in the file. See any of the existing flavors for examples.
+
+.. _create a ticket: http://code.djangoproject.com/simpleticket
+
+Argentina (``ar``)
+=============================================
+
+.. class:: ar.forms.ARPostalCodeField
+
+    A form field that validates input as either a classic four-digit Argentinian
+    postal code or a CPA_.
+
+.. _CPA: http://www.correoargentino.com.ar/consulta_cpa/home.php
+
+.. class:: ar.forms.ARDNIField
+
+    A form field that validates input as a Documento Nacional de Identidad (DNI)
+    number.
+
+.. class:: ar.forms.ARCUITField
+
+    A form field that validates input as a Codigo Unico de Identificacion
+    Tributaria (CUIT) number.
+
+.. class:: ar.forms.ARProvinceSelect
+
+    A ``Select`` widget that uses a list of Argentina's provinces and autonomous
+    cities as its choices.
+
+Australia (``au``)
+=============================================
+
+.. class:: au.forms.AUPostCodeField
+
+    A form field that validates input as an Australian postcode.
+
+.. class:: au.forms.AUPhoneNumberField
+
+    A form field that validates input as an Australian phone number. Valid numbers
+    have ten digits.
+
+.. class:: au.forms.AUStateSelect
+
+    A ``Select`` widget that uses a list of Australian states/territories as its
+    choices.
+
+Austria (``at``)
+================
+
+.. class:: at.forms.ATZipCodeField
+
+    A form field that validates its input as an Austrian zip code.
+
+.. class:: at.forms.ATStateSelect
+
+    A ``Select`` widget that uses a list of Austrian states as its choices. 
+
+.. class:: at.forms.ATSocialSecurityNumberField
+
+    A form field that validates its input as an Austrian social security number.
+
+Brazil (``br``)
+===============
+
+.. class:: br.forms.BRPhoneNumberField
+
+    A form field that validates input as a Brazilian phone number, with the format
+    XX-XXXX-XXXX.
+
+.. class:: br.forms.BRZipCodeField
+
+    A form field that validates input as a Brazilian zip code, with the format
+    XXXXX-XXX.
+
+.. class:: br.forms.BRStateSelect
+
+    A ``Select`` widget that uses a list of Brazilian states/territories as its
+    choices.
+
+Canada (``ca``)
+===============
+
+.. class:: ca.forms.CAPhoneNumberField
+
+    A form field that validates input as a Canadian phone number, with the format
+    XXX-XXX-XXXX.
+
+.. class:: ca.forms.CAPostalCodeField
+
+    A form field that validates input as a Canadian postal code, with the format
+    XXX XXX.
+
+.. class:: ca.forms.CAProvinceField
+
+    A form field that validates input as a Canadian province name or abbreviation.
+
+.. class:: ca.forms.CASocialInsuranceNumberField
+
+    A form field that validates input as a Canadian Social Insurance Number (SIN).
+    A valid number must have the format XXX-XXX-XXX and pass a `Luhn mod-10
+    checksum`_.
+
+.. _Luhn mod-10 checksum: http://en.wikipedia.org/wiki/Luhn_algorithm
+
+.. class:: ca.forms.CAProvinceSelect
+
+    A ``Select`` widget that uses a list of Canadian provinces and territories as
+    its choices.
+
+Chile (``cl``)
+==============
+
+.. class:: cl.forms.CLRutField
+
+    A form field that validates input as a Chilean national identification number
+    ('Rol Unico Tributario' or RUT). The valid format is XX.XXX.XXX-X.
+
+.. class:: cl.forms.CLRegionSelect
+
+    A ``Select`` widget that uses a list of Chilean regions (Regiones) as its
+    choices.
+
+Finland (``fi``)
+================
+
+.. class:: fi.forms.FISocialSecurityNumber
+
+    A form field that validates input as a Finnish social security number.
+
+.. class:: fi.forms.FIZipCodeField
+
+    A form field that validates input as a Finnish zip code. Valid codes
+    consist of five digits.
+
+.. class:: fi.forms.FIMunicipalitySelect
+
+    A ``Select`` widget that uses a list of Finnish municipalities as its
+    choices.
+
+France (``fr``)
+===============
+
+.. class:: fr.forms.FRPhoneNumberField
+
+    A form field that validates input as a French local phone number. The
+    correct format is 0X XX XX XX XX. 0X.XX.XX.XX.XX and 0XXXXXXXXX validate
+    but are corrected to 0X XX XX XX XX.
+
+.. class:: fr.forms.FRZipCodeField
+
+    A form field that validates input as a French zip code. Valid codes
+    consist of five digits.
+
+.. class:: fr.forms.FRDepartmentSelect
+
+    A ``Select`` widget that uses a list of French departments as its choices.
+
+Germany (``de``)
+================
+
+.. class:: de.forms.DEIdentityCardNumberField
+
+    A form field that validates input as a German identity card number
+    (Personalausweis_). Valid numbers have the format
+    XXXXXXXXXXX-XXXXXXX-XXXXXXX-X, with no group consisting entirely of zeroes.
+
+.. _Personalausweis: http://de.wikipedia.org/wiki/Personalausweis
+
+.. class:: de.forms.DEZipCodeField
+
+    A form field that validates input as a German zip code. Valid codes
+    consist of five digits.
+
+.. class:: de.forms.DEStateSelect
+
+    A ``Select`` widget that uses a list of German states as its choices.
+
+Holland (``nl``)
+================
+
+.. class:: nl.forms.NLPhoneNumberField
+
+    A form field that validates input as a Dutch telephone number.
+
+.. class:: nl.forms.NLSofiNumberField
+
+    A form field that validates input as a Dutch social security number
+    (SoFI/BSN).
+
+.. class:: nl.forms.NLZipCodeField
+
+    A form field that validates input as a Dutch zip code.
+
+.. class:: nl.forms.NLProvinceSelect
+
+    A ``Select`` widget that uses a list of Dutch provinces as its list of
+    choices.
+
+Iceland (``is_``)
+=================
+
+.. class:: is_.forms.ISIdNumberField
+
+    A form field that validates input as an Icelandic identification number
+    (kennitala). The format is XXXXXX-XXXX.
+
+.. class:: is_.forms.ISPhoneNumberField
+
+    A form field that validates input as an Icelandtic phone number (seven
+    digits with an optional hyphen or space after the first three digits).
+
+.. class:: is_.forms.ISPostalCodeSelect
+
+    A ``Select`` widget that uses a list of Icelandic postal codes as its
+    choices.
+
+India (``in_``)
+===============
+
+.. class:: in.forms.INStateField
+
+    A form field that validates input as an Indian state/territory name or
+    abbreviation. Input is normalized to the standard two-letter vehicle
+    registration abbreviation for the given state or territory.
+
+.. class:: in.forms.INZipCodeField
+
+    A form field that validates input as an Indian zip code, with the
+    format XXXXXXX.
+
+.. class:: in.forms.INStateSelect
+
+    A ``Select`` widget that uses a list of Indian states/territories as its
+    choices.
+
+Italy (``it``)
+==============
+
+.. class:: it.forms.ITSocialSecurityNumberField
+
+    A form field that validates input as an Italian social security number
+    (`codice fiscale`_).
+
+.. _codice fiscale: http://www.agenziaentrate.it/ilwwcm/connect/Nsi/Servizi/Codice+fiscale+-+tessera+sanitaria/Codice+fiscale/NSI+Informazioni+sulla+codificazione+delle+persone+fisiche
+
+.. class:: it.forms.ITVatNumberField
+
+    A form field that validates Italian VAT numbers (partita IVA).
+
+.. class:: it.forms.ITZipCodeField
+
+    A form field that validates input as an Italian zip code. Valid codes
+    must have five digits.
+
+.. class:: it.forms.ITProvinceSelect
+
+    A ``Select`` widget that uses a list of Italian provinces as its choices.
+
+.. class:: it.forms.ITRegionSelect
+
+    A ``Select`` widget that uses a list of Italian regions as its choices.
+
+Japan (``jp``)
+==============
+
+.. class:: jp.forms.JPPostalCodeField
+
+    A form field that validates input as a Japanese postcode. It accepts seven
+    digits, with or without a hyphen.
+
+.. class:: jp.forms.JPPrefectureSelect
+
+    A ``Select`` widget that uses a list of Japanese prefectures as its choices.
+
+Mexico (``mx``)
+===============
+
+.. class:: mx.forms.MXStateSelect
+
+    A ``Select`` widget that uses a list of Mexican states as its choices.
+
+Norway (``no``)
+===============
+
+.. class:: no.forms.NOSocialSecurityNumber
+
+    A form field that validates input as a Norwegian social security number
+    (personnummer_).
+
+.. _personnummer: http://no.wikipedia.org/wiki/Personnummer
+
+.. class:: no.forms.NOZipCodeField
+
+    A form field that validates input as a Norwegian zip code. Valid codes
+    have four digits.
+
+.. class:: no.forms.NOMunicipalitySelect
+
+    A ``Select`` widget that uses a list of Norwegian municipalities (fylker) as
+    its choices.
+
+Peru (``pe``)
+=============
+
+.. class:: pt.forms.PEDNIField
+
+    A form field that validates input as a DNI (Peruvian national identity)
+    number.
+
+.. class:: pt.forms.PERUCField
+
+    A form field that validates input as an RUC (Registro Unico de
+    Contribuyentes) number. Valid RUC numbers have 11 digits.
+
+.. class:: pt.forms.PEDepartmentSelect
+
+    A ``Select`` widget that uses a list of Peruvian Departments as its choices.
+
+Poland (``pl``)
+===============
+
+.. class:: pl.forms.PLNationalIdentificationNumberField
+
+    A form field that validates input as a Polish national identification number
+    (PESEL_).
+
+.. _PESEL: http://en.wikipedia.org/wiki/PESEL
+
+.. class:: pl.forms.PLNationalBusinessRegisterField
+
+    A form field that validates input as a Polish National Official Business
+    Register Number (REGON_), having either seven or nine digits. The checksum
+    algorithm used for REGONs is documented at
+    http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
+
+.. _REGON: http://www.stat.gov.pl/bip/regon_ENG_HTML.htm
+
+.. class:: pl.forms.PLPostalCodeField
+
+    A form field that validates input as a Polish postal code. The valid format
+    is XX-XXX, where X is a digit.
+
+.. class:: pl.forms.PLTaxNumberField
+
+    A form field that validates input as a Polish Tax Number (NIP). Valid
+    formats are XXX-XXX-XX-XX or XX-XX-XXX-XXX. The checksum algorithm used
+    for NIPs is documented at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
+
+.. class:: pl.forms.PLAdministrativeUnitSelect
+
+    A ``Select`` widget that uses a list of Polish administrative units as its
+    choices.
+
+.. class:: pl.forms.PLVoivodeshipSelect
+
+    A ``Select`` widget that uses a list of Polish voivodeships (administrative
+    provinces) as its choices.
+
+Romania (``ro``)
+================
+
+.. class:: ro.forms.ROCIFField
+
+    A form field that validates Romanian fiscal identification codes (CIF). The
+    return value strips the leading RO, if given.
+
+.. class:: ro.forms.ROCNPField
+
+    A form field that validates Romanian personal numeric codes (CNP).
+
+.. class:: ro.forms.ROCountyField
+
+    A form field that validates its input as a Romanian county (judet) name or
+    abbreviation. It normalizes the input to the standard vehicle registration
+    abbreviation for the given county. This field will only accept names written
+    with diacritics; consider using ROCountySelect as an alternative.
+
+.. class:: ro.forms.ROCountySelect
+
+    A ``Select`` widget that uses a list of Romanian counties (judete) as its
+    choices.
+
+.. class:: ro.forms.ROIBANField
+
+    A form field that validates its input as a Romanian International Bank 
+    Account Number (IBAN). The valid format is ROXX-XXXX-XXXX-XXXX-XXXX-XXXX,
+    with or without hyphens.
+
+.. class:: ro.forms.ROPhoneNumberField
+
+    A form field that validates Romanian phone numbers, short special numbers
+    excluded.
+
+.. class:: ro.forms.ROPostalCodeField
+
+    A form field that validates Romanian postal codes.
+
+Slovakia (``sk``)
+=================
+
+.. class:: sk.forms.SKPostalCodeField
+
+    A form field that validates input as a Slovak postal code. Valid formats
+    are XXXXX or XXX XX, where X is a digit.
+
+.. class:: sk.forms.SKDistrictSelect
+
+    A ``Select`` widget that uses a list of Slovak districts as its choices.
+
+.. class:: sk.forms.SKRegionSelect
+
+    A ``Select`` widget that uses a list of Slovak regions as its choices.
+
+South Africa (``za``)
+=====================
+
+.. class:: za.forms.ZAIDField
+
+    A form field that validates input as a South African ID number. Validation
+    uses the Luhn checksum and a simplistic (i.e., not entirely accurate) check
+    for birth date.
+
+.. class:: za.forms.ZAPostCodeField
+
+    A form field that validates input as a South African postcode. Valid
+    postcodes must have four digits.
+
+Spain (``es``)
+==============
+
+.. class:: es.forms.ESIdentityCardNumberField
+
+    A form field that validates input as a Spanish NIF/NIE/CIF (Fiscal
+    Identification Number) code.
+
+.. class:: es.forms.ESCCCField
+
+    A form field that validates input as a Spanish bank account number (Codigo
+    Cuenta Cliente or CCC). A valid CCC number has the format
+    EEEE-OOOO-CC-AAAAAAAAAA, where the E, O, C and A digits denote the entity,
+    office, checksum and account, respectively. The first checksum digit
+    validates the entity and office. The second checksum digit validates the
+    account. It is also valid to use a space as a delimiter, or to use no
+    delimiter.
+
+.. class:: es.forms.ESPhoneNumberField
+
+    A form field that validates input as a Spanish phone number. Valid numbers
+    have nine digits, the first of which is 6, 8 or 9.
+
+.. class:: es.forms.ESPostalCodeField
+
+    A form field that validates input as a Spanish postal code. Valid codes
+    have five digits, the first two being in the range 01 to 52, representing
+    the province.
+
+.. class:: es.forms.ESProvinceSelect
+
+    A ``Select`` widget that uses a list of Spanish provinces as its choices.
+
+.. class:: es.forms.ESRegionSelect
+
+    A ``Select`` widget that uses a list of Spanish regions as its choices.
+
+Switzerland (``ch``)
+====================
+
+.. class:: ch.forms.CHIdentityCardNumberField
+
+    A form field that validates input as a Swiss identity card number.
+    A valid number must confirm to the X1234567<0 or 1234567890 format and
+    have the correct checksums -- see http://adi.kousz.ch/artikel/IDCHE.htm.
+
+.. class:: ch.forms.CHPhoneNumberField
+
+    A form field that validates input as a Swiss phone number. The correct
+    format is 0XX XXX XX XX. 0XX.XXX.XX.XX and 0XXXXXXXXX validate but are
+    corrected to 0XX XXX XX XX.
+
+.. class:: ch.forms.CHZipCodeField
+
+    A form field that validates input as a Swiss zip code. Valid codes
+    consist of four digits.
+
+.. class:: ch.forms.CHStateSelect
+
+    A ``Select`` widget that uses a list of Swiss states as its choices.
+
+United Kingdom (``uk``)
+=======================
+
+.. class:: uk.forms.UKPostcodeField
+
+    A form field that validates input as a UK postcode. The regular
+    expression used is sourced from the schema for British Standard BS7666
+    address types at http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd.
+
+.. class:: ch.forms.UKCountySelect
+
+    A ``Select`` widget that uses a list of UK counties/regions as its choices.
+
+.. class:: ch.forms.UKNationSelect
+
+    A ``Select`` widget that uses a list of UK nations as its choices.
+
+United States of America (``us``)
+=================================
+
+.. class:: us.forms.USPhoneNumberField
+
+    A form field that validates input as a U.S. phone number.
+
+.. class:: us.forms.USSocialSecurityNumberField
+
+    A form field that validates input as a U.S. Social Security Number (SSN).
+    A valid SSN must obey the following rules:
+
+        * Format of XXX-XX-XXXX
+        * No group of digits consisting entirely of zeroes
+        * Leading group of digits cannot be 666
+        * Number not in promotional block 987-65-4320 through 987-65-4329
+        * Number not one known to be invalid due to widespread promotional
+          use or distribution (e.g., the Woolworth's number or the 1962
+          promotional number)
+
+.. class:: us.forms.USStateField
+
+    A form field that validates input as a U.S. state name or abbreviation. It
+    normalizes the input to the standard two-letter postal service abbreviation
+    for the given state.
+
+.. class:: us.forms.USZipCodeField
+
+    A form field that validates input as a U.S. ZIP code. Valid formats are
+    XXXXX or XXXXX-XXXX.
+
+.. class:: us.forms.USStateSelect
+
+    A form ``Select`` widget that uses a list of U.S. states/territories as its
+    choices.
diff --git a/docs/redirects.txt b/docs/ref/contrib/redirects.txt
similarity index 66%
rename from docs/redirects.txt
rename to docs/ref/contrib/redirects.txt
index 4df60d473f..6f9c57c09d 100644
--- a/docs/redirects.txt
+++ b/docs/ref/contrib/redirects.txt
@@ -1,7 +1,12 @@
+.. _ref-contrib-redirects:
+
 =================
 The redirects app
 =================
 
+.. module:: django.contrib.redirects
+   :synopsis: A framework for managing redirects.
+
 Django comes with an optional redirects application. It lets you store simple
 redirects in a database and handles the redirecting for you.
 
@@ -10,13 +15,11 @@ Installation
 
 To install the redirects app, follow these steps:
 
-    1. Add ``'django.contrib.redirects'`` to your INSTALLED_APPS_ setting.
+    1. Add ``'django.contrib.redirects'`` to your :setting:`INSTALLED_APPS`
+       setting.
     2. Add ``'django.contrib.redirects.middleware.RedirectFallbackMiddleware'``
-       to your MIDDLEWARE_CLASSES_ setting.
-    3. Run the command ``manage.py syncdb``.
-
-.. _INSTALLED_APPS: ../settings/#installed-apps
-.. _MIDDLEWARE_CLASSES: ../settings/#middleware-classes
+       to your :setting:`MIDDLEWARE_CLASSES` setting.
+    3. Run the command :djadmin:`manage.py syncdb <syncdb>`.
 
 How it works
 ============
@@ -27,8 +30,8 @@ is a simple lookup table with ``site_id``, ``old_path`` and ``new_path`` fields.
 The ``RedirectFallbackMiddleware`` does all of the work. Each time any Django
 application raises a 404 error, this middleware checks the redirects database
 for the requested URL as a last resort. Specifically, it checks for a redirect
-with the given ``old_path`` with a site ID that corresponds to the SITE_ID_
-setting.
+with the given ``old_path`` with a site ID that corresponds to the
+:setting:`SITE_ID` setting.
 
     * If it finds a match, and ``new_path`` is not empty, it redirects to
       ``new_path``.
@@ -40,14 +43,12 @@ setting.
 The middleware only gets activated for 404s -- not for 500s or responses of any
 other status code.
 
-Note that the order of ``MIDDLEWARE_CLASSES`` matters. Generally, you can put
-``RedirectFallbackMiddleware`` at the end of the list, because it's a last
-resort.
+Note that the order of :setting:`MIDDLEWARE_CLASSES` matters. Generally, you
+can put ``RedirectFallbackMiddleware`` at the end of the list, because it's a
+last resort.
 
-For more on middleware, read the `middleware docs`_.
-
-.. _SITE_ID: ../settings/#site-id
-.. _middleware docs: ../middleware/
+For more on middleware, read the :ref:`middleware docs
+<topics-http-middleware>`.
 
 How to add, change and delete redirects
 =======================================
@@ -62,10 +63,10 @@ other object in the system.
 Via the Python API
 ------------------
 
-Redirects are represented by a standard `Django model`_, which lives in
-`django/contrib/redirects/models.py`_. You can access redirect
-objects via the `Django database API`_.
+.. class:: models.Redirect
+
+    Redirects are represented by a standard :ref:`Django model <topics-db-models>`,
+    which lives in `django/contrib/redirects/models.py`_. You can access redirect
+    objects via the :ref:`Django database API <topics-db-queries>`.
 
-.. _Django model: ../model-api/
 .. _django/contrib/redirects/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/redirects/models.py
-.. _Django database API: ../db-api/
diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt
new file mode 100644
index 0000000000..c95ded6712
--- /dev/null
+++ b/docs/ref/contrib/sitemaps.txt
@@ -0,0 +1,343 @@
+.. _ref-contrib-sitemaps:
+
+=====================
+The sitemap framework
+=====================
+
+.. module:: django.contrib.sitemaps
+   :synopsis: A framework for generating Google sitemap XML files.
+
+Django comes with a high-level sitemap-generating framework that makes
+creating sitemap_ XML files easy.
+
+.. _sitemap: http://www.sitemaps.org/
+
+Overview
+========
+
+A sitemap is an XML file on your Web site that tells search-engine indexers how
+frequently your pages change and how "important" certain pages are in relation
+to other pages on your site. This information helps search engines index your
+site.
+
+The Django sitemap framework automates the creation of this XML file by letting
+you express this information in Python code.
+
+It works much like Django's :ref:`syndication framework
+<ref-contrib-syndication>`. To create a sitemap, just write a
+:class:`~django.contrib.sitemaps.Sitemap` class and point to it in your
+:ref:`URLconf <topics-http-urls>`.
+
+Installation
+============
+
+To install the sitemap app, follow these steps:
+
+    1. Add ``'django.contrib.sitemaps'`` to your :setting:`INSTALLED_APPS`
+       setting.
+       
+    2. Make sure ``'django.template.loaders.app_directories.load_template_source'``
+       is in your :setting:`TEMPLATE_LOADERS` setting. It's in there by default,
+       so you'll only need to change this if you've changed that setting.
+
+    3. Make sure you've installed the 
+       :mod:`sites framework <django.contrib.sites>`.
+
+(Note: The sitemap application doesn't install any database tables. The only
+reason it needs to go into :setting:`INSTALLED_APPS` is so that the
+:func:`~django.template.loaders.app_directories.load_template_source` template
+loader can find the default templates.)
+
+Initialization
+==============
+
+To activate sitemap generation on your Django site, add this line to your
+:ref:`URLconf <topics-http-urls>`::
+
+   (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
+
+This tells Django to build a sitemap when a client accesses :file:`/sitemap.xml`.
+
+The name of the sitemap file is not important, but the location is. Search
+engines will only index links in your sitemap for the current URL level and
+below. For instance, if :file:`sitemap.xml` lives in your root directory, it may
+reference any URL in your site. However, if your sitemap lives at
+:file:`/content/sitemap.xml`, it may only reference URLs that begin with
+:file:`/content/`.
+
+The sitemap view takes an extra, required argument: ``{'sitemaps': sitemaps}``.
+``sitemaps`` should be a dictionary that maps a short section label (e.g.,
+``blog`` or ``news``) to its :class:`~django.contrib.sitemaps.Sitemap` class
+(e.g., ``BlogSitemap`` or ``NewsSitemap``). It may also map to an *instance* of
+a :class:`~django.contrib.sitemaps.Sitemap` class (e.g.,
+``BlogSitemap(some_var)``).
+
+Sitemap classes
+===============
+
+A :class:`~django.contrib.sitemaps.Sitemap` class is a simple Python
+class that represents a "section" of entries in your sitemap. For example,
+one :class:`~django.contrib.sitemaps.Sitemap` class could represent
+all the entries of your weblog, while another could represent all of the
+events in your events calendar.
+
+In the simplest case, all these sections get lumped together into one
+:file:`sitemap.xml`, but it's also possible to use the framework to generate a
+sitemap index that references individual sitemap files, one per section. (See
+`Creating a sitemap index`_ below.)
+
+:class:`~django.contrib.sitemaps.Sitemap` classes must subclass
+``django.contrib.sitemaps.Sitemap``. They can live anywhere in your codebase.
+
+A simple example
+================
+
+Let's assume you have a blog system, with an ``Entry`` model, and you want your
+sitemap to include all the links to your individual blog entries. Here's how
+your sitemap class might look::
+
+    from django.contrib.sitemaps import Sitemap
+    from mysite.blog.models import Entry
+
+    class BlogSitemap(Sitemap):
+        changefreq = "never"
+        priority = 0.5
+
+        def items(self):
+            return Entry.objects.filter(is_draft=False)
+
+        def lastmod(self, obj):
+            return obj.pub_date
+
+Note:
+
+    * :attr:`~Sitemap.changefreq` and :attr:`~Sitemap.priority` are class
+      attributes corresponding to ``<changefreq>`` and ``<priority>`` elements,
+      respectively. They can be made callable as functions, as
+      :attr:`~Sitemap.lastmod` was in the example.
+    * :attr:`~Sitemap.items()` is simply a method that returns a list of
+      objects. The objects returned will get passed to any callable methods
+      corresponding to a sitemap property (:attr:`~Sitemap.location`,
+      :attr:`~Sitemap.lastmod`, :attr:`~Sitemap.changefreq`, and
+      :attr:`~Sitemap.priority`).
+    * :attr:`~Sitemap.lastmod` should return a Python ``datetime`` object.
+    * There is no :attr:`~Sitemap.location` method in this example, but you
+      can provide it in order to specify the URL for your object. By default,
+      :attr:`~Sitemap.location()` calls ``get_absolute_url()`` on each object
+      and returns the result.
+
+Sitemap class reference
+=======================
+
+.. class:: Sitemap
+
+    A ``Sitemap`` class can define the following methods/attributes:
+
+    .. attribute:: Sitemap.items
+
+        **Required.** A method that returns a list of objects. The framework
+        doesn't care what *type* of objects they are; all that matters is that
+        these objects get passed to the :attr:`~Sitemap.location()`,
+        :attr:`~Sitemap.lastmod()`, :attr:`~Sitemap.changefreq()` and
+        :attr:`~Sitemap.priority()` methods.
+
+    .. attribute:: Sitemap.location
+
+        **Optional.** Either a method or attribute.
+
+        If it's a method, it should return the absolute URL for a given object as
+        returned by :attr:`~Sitemap.items()`.
+
+        If it's an attribute, its value should be a string representing an absolute URL
+        to use for *every* object returned by :attr:`~Sitemap.items()`.
+
+        In both cases, "absolute URL" means a URL that doesn't include the protocol or
+        domain. Examples:
+
+            * Good: :file:`'/foo/bar/'`
+            * Bad: :file:`'example.com/foo/bar/'`
+            * Bad: :file:`'http://example.com/foo/bar/'`
+
+        If :attr:`~Sitemap.location` isn't provided, the framework will call the
+        ``get_absolute_url()`` method on each object as returned by
+        :attr:`~Sitemap.items()`.
+
+    .. attribute:: Sitemap.lastmod
+
+        **Optional.** Either a method or attribute.
+
+        If it's a method, it should take one argument -- an object as returned by
+        :attr:`~Sitemap.items()` -- and return that object's last-modified date/time, as a Python
+        ``datetime.datetime`` object.
+
+        If it's an attribute, its value should be a Python ``datetime.datetime`` object
+        representing the last-modified date/time for *every* object returned by
+        :attr:`~Sitemap.items()`.
+
+    .. attribute:: Sitemap.changefreq
+
+        **Optional.** Either a method or attribute.
+
+        If it's a method, it should take one argument -- an object as returned by
+        :attr:`~Sitemap.items()` -- and return that object's change frequency, as a Python string.
+
+        If it's an attribute, its value should be a string representing the change
+        frequency of *every* object returned by :attr:`~Sitemap.items()`.
+
+        Possible values for :attr:`~Sitemap.changefreq`, whether you use a method or attribute, are:
+
+            * ``'always'``
+            * ``'hourly'``
+            * ``'daily'``
+            * ``'weekly'``
+            * ``'monthly'``
+            * ``'yearly'``
+            * ``'never'``
+
+    .. method:: Sitemap.priority
+
+        **Optional.** Either a method or attribute.
+
+        If it's a method, it should take one argument -- an object as returned by
+        :attr:`~Sitemap.items()` -- and return that object's priority, as either a string or float.
+
+        If it's an attribute, its value should be either a string or float representing
+        the priority of *every* object returned by :attr:`~Sitemap.items()`.
+
+        Example values for :attr:`~Sitemap.priority`: ``0.4``, ``1.0``. The default priority of a
+        page is ``0.5``. See the `sitemaps.org documentation`_ for more.
+
+        .. _sitemaps.org documentation: http://www.sitemaps.org/protocol.html#prioritydef
+
+Shortcuts
+=========
+
+The sitemap framework provides a couple convenience classes for common cases:
+
+.. class:: FlatPageSitemap
+
+    The :class:`django.contrib.sitemaps.FlatPageSitemap` class looks at all
+    :mod:`flatpages <django.contrib.flatpages>` defined for the current
+    :setting:`SITE_ID` (see the
+    :mod:`sites documentation <django.contrib.sites>`) and
+    creates an entry in the sitemap. These entries include only the
+    :attr:`~Sitemap.location` attribute -- not :attr:`~Sitemap.lastmod`,
+    :attr:`~Sitemap.changefreq` or :attr:`~Sitemap.priority`.
+
+.. class:: GenericSitemap
+
+    The :class:`django.contrib.sitemaps.GenericSitemap` class works with any
+    :ref:`generic views <ref-generic-views>` you already have.
+    To use it, create an instance, passing in the same :data:`info_dict` you pass to
+    the generic views. The only requirement is that the dictionary have a
+    :data:`queryset` entry. It may also have a :data:`date_field` entry that specifies a
+    date field for objects retrieved from the :data:`queryset`. This will be used for
+    the :attr:`~Sitemap.lastmod` attribute in the generated sitemap. You may
+    also pass :attr:`~Sitemap.priority` and :attr:`~Sitemap.changefreq`
+    keyword arguments to the :class:`~django.contrib.sitemaps.GenericSitemap`
+    constructor to specify these attributes for all URLs.
+
+Example
+-------
+
+Here's an example of a :ref:`URLconf <topics-http-urls>` using both::
+
+    from django.conf.urls.defaults import *
+    from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap
+    from mysite.blog.models import Entry
+
+    info_dict = {
+        'queryset': Entry.objects.all(),
+        'date_field': 'pub_date',
+    }
+
+    sitemaps = {
+        'flatpages': FlatPageSitemap,
+        'blog': GenericSitemap(info_dict, priority=0.6),
+    }
+
+    urlpatterns = patterns('',
+        # some generic view using info_dict
+        # ...
+
+        # the sitemap
+        (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
+    )
+
+.. _URLconf: ../url_dispatch/
+
+Creating a sitemap index
+========================
+
+The sitemap framework also has the ability to create a sitemap index that
+references individual sitemap files, one per each section defined in your
+:data:`sitemaps` dictionary. The only differences in usage are:
+
+    * You use two views in your URLconf: :func:`django.contrib.sitemaps.views.index`
+      and :func:`django.contrib.sitemaps.views.sitemap`.
+    * The :func:`django.contrib.sitemaps.views.sitemap` view should take a
+      :data:`section` keyword argument.
+
+Here is what the relevant URLconf lines would look like for the example above::
+
+   (r'^sitemap.xml$', 'django.contrib.sitemaps.views.index', {'sitemaps': sitemaps})
+   (r'^sitemap-(?P<section>.+).xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
+
+This will automatically generate a :file:`sitemap.xml` file that references both
+:file:`sitemap-flatpages.xml` and :file:`sitemap-blog.xml`. The
+:class:`~django.contrib.sitemaps.Sitemap` classes and the :data:`sitemaps` dict
+don't change at all.
+
+If one of your sitemaps is going to have more than 50,000 URLs you should 
+create an index file. Your sitemap will be paginated and the index will 
+reflect that.
+
+Pinging Google
+==============
+
+You may want to "ping" Google when your sitemap changes, to let it know to
+reindex your site. The framework provides a function to do just that:
+:func:`django.contrib.sitemaps.ping_google()`.
+
+.. function:: ping_google
+
+    :func:`ping_google` takes an optional argument, :data:`sitemap_url`,
+    which should be the absolute URL of your site's sitemap (e.g.,
+    :file:`'/sitemap.xml'`). If this argument isn't provided,
+    :func:`ping_google` will attempt to figure out your
+    sitemap by performing a reverse looking in your URLconf.
+
+    :func:`ping_google` raises the exception
+    :exc:`django.contrib.sitemaps.SitemapNotFound` if it cannot determine your
+    sitemap URL.
+
+One useful way to call :func:`ping_google` is from a model's ``save()``
+method::
+
+   from django.contrib.sitemaps import ping_google
+  
+    class Entry(models.Model):
+        # ...
+        def save(self):
+            super(Entry, self).save()
+            try:
+                ping_google()
+            except Exception:
+                # Bare 'except' because we could get a variety
+                # of HTTP-related exceptions.
+                pass
+
+A more efficient solution, however, would be to call :func:`ping_google` from a
+cron script, or some other scheduled task. The function makes an HTTP request
+to Google's servers, so you may not want to introduce that network overhead
+each time you call ``save()``.
+
+Pinging Google via `manage.py`
+------------------------------
+
+**New in Django development version**
+
+Once the sitemaps application is added to your project, you may also
+ping the Google server's through the command line manage.py interface::
+
+    python manage.py ping_google [/sitemap.xml]
diff --git a/docs/sites.txt b/docs/ref/contrib/sites.txt
similarity index 60%
rename from docs/sites.txt
rename to docs/ref/contrib/sites.txt
index 9516b43995..5a29370561 100644
--- a/docs/sites.txt
+++ b/docs/ref/contrib/sites.txt
@@ -1,7 +1,13 @@
+.. _ref-contrib-sites:
+
 =====================
 The "sites" framework
 =====================
 
+.. module:: django.contrib.sites
+   :synopsis: Lets you operate multiple web sites from the same database and
+              Django project
+
 Django comes with an optional "sites" framework. It's a hook for associating
 objects and functionality to particular Web sites, and it's a holding place for
 the domain names and "verbose" names of your Django-powered sites.
@@ -9,12 +15,15 @@ the domain names and "verbose" names of your Django-powered sites.
 Use it if your single Django installation powers more than one site and you
 need to differentiate between those sites in some way.
 
-The whole sites framework is based on two simple concepts:
+The whole sites framework is based on a simple model:
 
-    * The ``Site`` model, found in ``django.contrib.sites``, has ``domain`` and
-      ``name`` fields.
-    * The ``SITE_ID`` setting specifies the database ID of the ``Site`` object
-      associated with that particular settings file.
+.. class:: django.contrib.sites.models.Site
+
+This model has :attr:`~django.contrib.sites.models.Site.domain` and
+:attr:`~django.contrib.sites.models.Site.name` fields. The :setting:`SITE_ID`
+setting specifies the database ID of the
+:class:`~django.contrib.sites.models.Site` object associated with that
+particular settings file.
 
 How you use this is up to you, but Django uses it in a couple of ways
 automatically via simple conventions.
@@ -40,7 +49,8 @@ multiple copies of the same story in the database.
 
 The better solution is simple: Both sites use the same article database, and an
 article is associated with one or more sites. In Django model terminology,
-that's represented by a ``ManyToManyField`` in the ``Article`` model::
+that's represented by a :class:`~django.db.models.ManyToManyField` in the
+``Article`` model::
 
     from django.db import models
     from django.contrib.sites.models import Site
@@ -77,8 +87,9 @@ This accomplishes several things quite nicely:
 Associating content with a single site
 --------------------------------------
 
-Similarly, you can associate a model to the ``Site`` model in a many-to-one
-relationship, using ``ForeignKey``.
+Similarly, you can associate a model to the :class:`~django.contrib.sites.models.Site`
+model in a many-to-one relationship, using
+:class:`~django.db.models.fields.related.ForeignKey`.
 
 For example, if an article is only allowed on a single site, you'd use a model
 like this::
@@ -123,8 +134,9 @@ domain::
         else:
             # Do something else.
 
-The idiom of retrieving the ``Site`` object for the value of
-``settings.SITE_ID`` is quite common, so the ``Site`` model's manager has a
+The idiom of retrieving the :class:`~django.contrib.sites.models.Site` object
+for the value of :setting:`settings.SITE_ID <SITE_ID>` is quite common, so
+the :class:`~django.contrib.sites.models.Site` model's manager has a
 ``get_current()`` method. This example is equivalent to the previous one::
 
     from django.contrib.sites.models import Site
@@ -146,9 +158,11 @@ reader signs up on a Web form, and he immediately gets an e-mail saying,
 
 It'd be inefficient and redundant to implement this signup-processing code
 twice, so the sites use the same code behind the scenes. But the "thank you for
-signing up" notice needs to be different for each site. By using ``Site``
+signing up" notice needs to be different for each site. By using
+:class:`~django.contrib.sites.models.Site`
 objects, we can abstract the "thank you" notice to use the values of the
-current site's ``name`` and ``domain``.
+current site's :attr:`~django.contrib.sites.models.Site.name` and
+:attr:`~django.contrib.sites.models.Site.domain`.
 
 Here's an example of what the form-handling view looks like::
 
@@ -173,7 +187,7 @@ subscribing to LJWorld.com alerts." Same goes for the e-mail's message body.
 
 Note that an even more flexible (but more heavyweight) way of doing this would
 be to use Django's template system. Assuming Lawrence.com and LJWorld.com have
-different template directories (``TEMPLATE_DIRS``), you could simply farm out
+different template directories (:setting:`TEMPLATE_DIRS`), you could simply farm out
 to the template system like so::
 
     from django.core.mail import send_mail
@@ -189,12 +203,12 @@ to the template system like so::
 
         # ...
 
-In this case, you'd have to create ``subject.txt`` and ``message.txt`` template
+In this case, you'd have to create :file:`subject.txt` and :file:`message.txt` template
 files for both the LJWorld.com and Lawrence.com template directories. That
 gives you more flexibility, but it's also more complex.
 
-It's a good idea to exploit the ``Site`` objects as much as possible, to remove
-unneeded complexity and redundancy.
+It's a good idea to exploit the :class:`~django.contrib.sites.models.Site``
+objects as much as possible, to remove unneeded complexity and redundancy.
 
 Getting the current domain for full URLs
 ----------------------------------------
@@ -241,12 +255,17 @@ clear the cache using ``Site.objects.clear_cache()``::
 The ``CurrentSiteManager``
 ==========================
 
-If ``Site``\s play a key role in your application, consider using the helpful
-``CurrentSiteManager`` in your model(s). It's a model manager_ that
-automatically filters its queries to include only objects associated with the
-current ``Site``.
+.. class:: django.contrib.sites.managers.CurrentSiteManager
 
-Use ``CurrentSiteManager`` by adding it to your model explicitly. For example::
+If :class:`~django.contrib.sites.models.Site`\s play a key role in your application,
+consider using the helpful
+:class:`~django.contrib.sites.managers.CurrentSiteManager` in your model(s).
+It's a model :ref:`manager <topics-db-managers>` that automatically filters
+its queries to include only objects associated with the current
+:class:`~django.contrib.sites.models.Site`.
+
+Use :class:`~django.contrib.sites.managers.CurrentSiteManager` by adding it to
+your model explicitly. For example::
 
     from django.db import models
     from django.contrib.sites.models import Site
@@ -261,20 +280,24 @@ Use ``CurrentSiteManager`` by adding it to your model explicitly. For example::
         on_site = CurrentSiteManager()
 
 With this model, ``Photo.objects.all()`` will return all ``Photo`` objects in
-the database, but ``Photo.on_site.all()`` will return only the ``Photo``
-objects associated with the current site, according to the ``SITE_ID`` setting.
+the database, but ``Photo.on_site.all()`` will return only the ``Photo`` objects
+associated with the current site, according to the :setting:`SITE_ID` setting.
 
 Put another way, these two statements are equivalent::
 
     Photo.objects.filter(site=settings.SITE_ID)
     Photo.on_site.all()
 
-How did ``CurrentSiteManager`` know which field of ``Photo`` was the ``Site``?
-It defaults to looking for a field called ``site``. If your model has a
-``ForeignKey`` or ``ManyToManyField`` called something *other* than ``site``,
-you need to explicitly pass that as the parameter to ``CurrentSiteManager``.
-The following model, which has a field called ``publish_on``, demonstrates
-this::
+How did :class:`~django.contrib.sites.managers.CurrentSiteManager` know which
+field of ``Photo`` was the :class:`~django.contrib.sites.models.Site`? It
+defaults to looking for a field called
+:class:`~django.contrib.sites.models.Site`. If your model has a
+:class:`~django.db.models.fields.related.ForeignKey` or
+:class:`~django.db.models.fields.related.ManyToManyField` called something
+*other* than :class:`~django.contrib.sites.models.Site`, you need to explicitly
+pass that as the parameter to
+:class:`~django.contrib.sites.managers.CurrentSiteManager`. The following model,
+which has a field called ``publish_on``, demonstrates this::
 
     from django.db import models
     from django.contrib.sites.models import Site
@@ -288,21 +311,19 @@ this::
         objects = models.Manager()
         on_site = CurrentSiteManager('publish_on')
 
-If you attempt to use ``CurrentSiteManager`` and pass a field name that doesn't
-exist, Django will raise a ``ValueError``.
+If you attempt to use :class:`~django.contrib.sites.managers.CurrentSiteManager`
+and pass a field name that doesn't exist, Django will raise a :exc:`ValueError`.
 
 Finally, note that you'll probably want to keep a normal (non-site-specific)
-``Manager`` on your model, even if you use ``CurrentSiteManager``. As explained
-in the `manager documentation`_, if you define a manager manually, then Django
-won't create the automatic ``objects = models.Manager()`` manager for you.
-Also, note that certain parts of Django -- namely, the Django admin site and
+``Manager`` on your model, even if you use
+:class:`~django.contrib.sites.managers.CurrentSiteManager`. As explained
+in the :ref:`manager documentation <topics-db-managers>`, if you define a manager
+manually, then Django won't create the automatic ``objects = models.Manager()``
+manager for you.Also, note that certain parts of Django -- namely, the Django admin site and
 generic views -- use whichever manager is defined *first* in the model, so if
 you want your admin site to have access to all objects (not just site-specific
 ones), put ``objects = models.Manager()`` in your model, before you define
-``CurrentSiteManager``.
-
-.. _manager: ../model-api/#managers
-.. _manager documentation: ../model-api/#managers
+:class:`~django.contrib.sites.managers.CurrentSiteManager`.
 
 How Django uses the sites framework
 ===================================
@@ -311,58 +332,70 @@ Although it's not required that you use the sites framework, it's strongly
 encouraged, because Django takes advantage of it in a few places. Even if your
 Django installation is powering only a single site, you should take the two
 seconds to create the site object with your ``domain`` and ``name``, and point
-to its ID in your ``SITE_ID`` setting.
+to its ID in your :setting:`SITE_ID` setting.
 
 Here's how Django uses the sites framework:
 
-    * In the `redirects framework`_, each redirect object is associated with a
-      particular site. When Django searches for a redirect, it takes into
-      account the current ``SITE_ID``.
+* In the :mod:`redirects framework <django.contrib.redirects>`, each
+  redirect object is associated with a particular site. When Django searches
+  for a redirect, it takes into account the current :setting:`SITE_ID`.
 
-    * In the comments framework, each comment is associated with a particular
-      site. When a comment is posted, its ``site`` is set to the current
-      ``SITE_ID``, and when comments are listed via the appropriate template
-      tag, only the comments for the current site are displayed.
+* In the comments framework, each comment is associated with a particular
+  site. When a comment is posted, its
+  :class:`~django.contrib.sites.models.Site` is set to the current
+  :setting:`SITE_ID`, and when comments are listed via the appropriate
+  template tag, only the comments for the current site are displayed.
+  
+* In the :mod:`flatpages framework <django.contrib.flatpages>`, each
+  flatpage is associated with a particular site. When a flatpage is created,
+  you specify its :class:`~django.contrib.sites.models.Site`, and the
+  :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware`
+  checks the current :setting:`SITE_ID` in retrieving flatpages to display.
 
-    * In the `flatpages framework`_, each flatpage is associated with a
-      particular site. When a flatpage is created, you specify its ``site``,
-      and the ``FlatpageFallbackMiddleware`` checks the current ``SITE_ID`` in
-      retrieving flatpages to display.
+* In the :mod:`syndication framework <django.contrib.syndication>`, the
+  templates for ``title`` and ``description`` automatically have access to a
+  variable ``{{ site }}``, which is the
+  :class:`~django.contrib.sites.models.Site` object representing the current
+  site. Also, the hook for providing item URLs will use the ``domain`` from
+  the current :class:`~django.contrib.sites.models.Site` object if you don't
+  specify a fully-qualified domain.
 
-    * In the `syndication framework`_, the templates for ``title`` and
-      ``description`` automatically have access to a variable ``{{ site }}``,
-      which is the ``Site`` object representing the current site. Also, the
-      hook for providing item URLs will use the ``domain`` from the current
-      ``Site`` object if you don't specify a fully-qualified domain.
+* In the :mod:`authentication framework <django.contrib.auth>`, the
+  :func:`django.contrib.auth.views.login` view passes the current
+  :class:`~django.contrib.sites.models.Site` name to the template as
+  ``{{ site_name }}``.
 
-    * In the `authentication framework`_, the ``django.contrib.auth.views.login``
-      view passes the current ``Site`` name to the template as ``{{ site_name }}``.
+* The shortcut view (:func:`django.views.defaults.shortcut`) uses the domain
+  of the current :class:`~django.contrib.sites.models.Site` object when
+  calculating an object's URL.
 
-    * The shortcut view (``django.views.defaults.shortcut``) uses the domain of
-      the current ``Site`` object when calculating an object's URL.
+* In the admin framework, the "view on site" link uses the current
+  :class:`~django.contrib.sites.models.Site` to work out the domain for the
+  site that it will redirect to.
 
-    * In the admin framework, the ''view on site'' link uses the current
-      ``Site`` to work out the domain for the site that it will redirect to.
-
-.. _redirects framework: ../redirects/
-.. _flatpages framework: ../flatpages/
-.. _syndication framework: ../syndication_feeds/
-.. _authentication framework: ../authentication/
 
 ``RequestSite`` objects
 =======================
 
+.. _requestsite-objects:
+
 **New in Django development version**
 
-Some ``django.contrib`` applications take advantage of the sites framework but
-are architected in a way that doesn't *require* the sites framework to be
-installed in your database. (Some people don't want to, or just aren't *able*
-to install the extra database table that the sites framework requires.) For
-those cases, the framework provides a ``RequestSite`` class, which can be used
-as a fallback when the database-backed sites framework is not available.
+Some :ref:`django.contrib <ref-contrib-index>` applications take advantage of
+the sites framework but are architected in a way that doesn't *require* the
+sites framework to be installed in your database. (Some people don't want to, or
+just aren't *able* to install the extra database table that the sites framework
+requires.) For those cases, the framework provides a
+:class:`~django.contrib.sites.models.RequestSite` class, which can be used as a
+fallback when the database-backed sites framework is not available.
 
-A ``RequestSite`` object has a similar interface to a normal ``Site`` object,
-except its ``__init__()`` method takes an ``HttpRequest`` object. It's able to
-deduce the ``domain`` and ``name`` by looking at the request's domain. It has
-``save()`` and ``delete()`` methods to match the interface of ``Site``, but
-the methods raise ``NotImplementedError``.
+A :class:`~django.contrib.sites.models.RequestSite` object has a similar
+interface to a normal :class:`~django.contrib.sites.models.Site` object, except
+its :meth:`~django.contrib.sites.models.RequestSite.__init__()` method takes an
+:class:`~django.http.HttpRequest` object. It's able to deduce the
+:attr:`~django.contrib.sites.models.RequestSite.domain` and
+:attr:`~django.contrib.sites.models.RequestSite.name` by looking at the
+request's domain. It has :meth:`~django.contrib.sites.models.RequestSite.save()`
+and :meth:`~django.contrib.sites.models.RequestSite.delete()` methods to match
+the interface of :class:`~django.contrib.sites.models.Site`, but the methods
+raise :exc:`NotImplementedError`.
diff --git a/docs/syndication_feeds.txt b/docs/ref/contrib/syndication.txt
similarity index 72%
rename from docs/syndication_feeds.txt
rename to docs/ref/contrib/syndication.txt
index ceb56a4788..6624793460 100644
--- a/docs/syndication_feeds.txt
+++ b/docs/ref/contrib/syndication.txt
@@ -1,7 +1,13 @@
+.. _ref-contrib-syndication:
+
 ==============================
 The syndication feed framework
 ==============================
 
+.. module:: django.contrib.syndication
+   :synopsis: A framework for generating syndication feeds, in RSS and Atom,
+              quite easily.
+
 Django comes with a high-level syndication-feed-generating framework that makes
 creating RSS_ and Atom_ feeds easy.
 
@@ -24,33 +30,33 @@ The high-level feed-generating framework is a view that's hooked to ``/feeds/``
 by default. Django uses the remainder of the URL (everything after ``/feeds/``)
 to determine which feed to output.
 
-To create a feed, just write a ``Feed`` class and point to it in your URLconf_.
-
-.. _URLconf: ../url_dispatch/
+To create a feed, just write a :class:`~django.contrib.syndication.feeds.Feed`
+class and point to it in your :ref:`URLconf <topics-http-urls>`.
 
 Initialization
 --------------
 
 If you're not using the latest Django development version, you'll need to make
-sure Django's sites framework is installed -- including its database table.
-(See the `sites framework documentation`_ for more information.) This has
-changed in the Django development version; the syndication feed framework no
-longer requires the sites framework.
+sure Django's sites framework is installed -- including its database table. (See
+the :mod:`sites framework documentation <django.contrib.sites>` for more
+information.) This has changed in the Django development version; the
+syndication feed framework no longer requires the sites framework.
 
 To activate syndication feeds on your Django site, add this line to your
-URLconf_::
+:ref:`URLconf <topics-http-urls>`::
 
-    (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
+   (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
 
 This tells Django to use the RSS framework to handle all URLs starting with
-``"feeds/"``. (You can change that ``"feeds/"`` prefix to fit your own needs.)
+:file:`"feeds/"`. (You can change that :file:`"feeds/"` prefix to fit your own
+needs.)
 
 This URLconf line has an extra argument: ``{'feed_dict': feeds}``. Use this
 extra argument to pass the syndication framework the feeds that should be
 published under that URL.
 
-Specifically, ``feed_dict`` should be a dictionary that maps a feed's slug
-(short URL label) to its ``Feed`` class.
+Specifically, :data:`feed_dict` should be a dictionary that maps a feed's slug
+(short URL label) to its :class:`~django.contrib.syndication.feeds.Feed` class.
 
 You can define the ``feed_dict`` in the URLconf itself. Here's a full example
 URLconf::
@@ -76,22 +82,21 @@ The above example registers two feeds:
     * The feed represented by ``LatestEntriesByCategory`` will live at
       ``feeds/categories/``.
 
-Once that's set up, you just need to define the ``Feed`` classes themselves.
-
-.. _sites framework documentation: ../sites/
-.. _URLconf: ../url_dispatch/
-.. _settings file: ../settings/
+Once that's set up, you just need to define the
+:class:`~django.contrib.syndication.feeds.Feed` classes themselves.
 
 Feed classes
 ------------
 
-A ``Feed`` class is a simple Python class that represents a syndication feed.
-A feed can be simple (e.g., a "site news" feed, or a basic feed displaying
-the latest entries of a blog) or more complex (e.g., a feed displaying all the
-blog entries in a particular category, where the category is variable).
+A :class:`~django.contrib.syndication.feeds.Feed` class is a simple Python class
+that represents a syndication feed. A feed can be simple (e.g., a "site news"
+feed, or a basic feed displaying the latest entries of a blog) or more complex
+(e.g., a feed displaying all the blog entries in a particular category, where
+the category is variable).
 
-``Feed`` classes must subclass ``django.contrib.syndication.feeds.Feed``. They
-can live anywhere in your codebase.
+:class:`~django.contrib.syndication.feeds.Feed` classes must subclass
+``django.contrib.syndication.feeds.Feed``. They can live anywhere in your
+codebase.
 
 A simple example
 ----------------
@@ -112,71 +117,83 @@ latest five news items::
 
 Note:
 
-    * The class subclasses ``django.contrib.syndication.feeds.Feed``.
-    * ``title``, ``link`` and ``description`` correspond to the standard
-      RSS ``<title>``, ``<link>`` and ``<description>`` elements, respectively.
-    * ``items()`` is, simply, a method that returns a list of objects that
-      should be included in the feed as ``<item>`` elements. Although this
-      example returns ``NewsItem`` objects using Django's
-      `object-relational mapper`_, ``items()`` doesn't have to return model
-      instances. Although you get a few bits of functionality "for free" by
-      using Django models, ``items()`` can return any type of object you want.
-    * If you're creating an Atom feed, rather than an RSS feed, set the
-      ``subtitle`` attribute instead of the ``description`` attribute. See
-      `Publishing Atom and RSS feeds in tandem`_, later, for an example.
+* The class subclasses ``django.contrib.syndication.feeds.Feed``.
+
+* :attr:`title`, :attr:`link` and :attr:`description` correspond to the
+  standard RSS ``<title>``, ``<link>`` and ``<description>`` elements,
+  respectively.
+
+* :meth:`items()` is, simply, a method that returns a list of objects that
+  should be included in the feed as ``<item>`` elements. Although this
+  example returns ``NewsItem`` objects using Django's
+  :ref:`object-relational mapper <ref-models-querysets>`, :meth:`items()`
+  doesn't have to return model instances. Although you get a few bits of
+  functionality "for free" by using Django models, :meth:`items()` can
+  return any type of object you want.
+
+* If you're creating an Atom feed, rather than an RSS feed, set the
+  :attr:`subtitle` attribute instead of the :attr:`description` attribute.
+  See `Publishing Atom and RSS feeds in tandem`_, later, for an example.
 
 One thing's left to do. In an RSS feed, each ``<item>`` has a ``<title>``,
-``<link>`` and ``<description>``. We need to tell the framework what data to
-put into those elements.
+``<link>`` and ``<description>``. We need to tell the framework what data to put
+into those elements.
 
     * To specify the contents of ``<title>`` and ``<description>``, create
-      `Django templates`_ called ``feeds/latest_title.html`` and
-      ``feeds/latest_description.html``, where ``latest`` is the ``slug``
-      specified in the URLconf for the given feed. Note the ``.html`` extension
-      is required. The RSS system renders that template for each item, passing
-      it two template context variables:
+      :ref:`Django templates <topics-templates>` called
+      :file:`feeds/latest_title.html`` and
+      :file:`feeds/latest_description.html`, where :attr:`latest` is the
+      :attr:`slug` specified in the URLconf for the given feed. Note the
+      ``.html`` extension is required. The RSS system renders that template for
+      each item, passing it two template context variables:
 
-          * ``{{ obj }}`` -- The current object (one of whichever objects you
-            returned in ``items()``).
-          * ``{{ site }}`` -- A ``django.contrib.sites.models.Site`` object
-            representing the current site. This is useful for
-            ``{{ site.domain }}`` or ``{{ site.name }}``. Note that if you're
-            using the latest Django development version and do *not* have the
-            Django sites framework installed, this will be set to a
-            ``django.contrib.sites.models.RequestSite`` object. See the
-            `RequestSite section of the sites framework documentation`_ for
-            more.
+         * ``{{ obj }}`` -- The current object (one of whichever objects you
+           returned in :meth:`items()`).
+         
+         * ``{{ site }}`` -- A :class:`django.contrib.sites.models.Site` object
+           representing the current site. This is useful for ``{{ site.domain
+           }}`` or ``{{ site.name }}``. Note that if you're using the latest
+           Django development version and do *not* have the Django sites
+           framework installed, this will be set to a
+           :class:`django.contrib.sites.models.RequestSite` object. See the
+           :ref:`RequestSite section of the sites framework documentation
+           <requestsite-objects>` for more.
 
       If you don't create a template for either the title or description, the
-      framework will use the template ``"{{ obj }}"`` by default -- that is,
-      the normal string representation of the object. You can also change the
-      names of these two templates by specifying ``title_template`` and
-      ``description_template`` as attributes of your ``Feed`` class.
-    * To specify the contents of ``<link>``, you have two options. For each
-      item in ``items()``, Django first tries executing a
-      ``get_absolute_url()`` method on that object. If that method doesn't
-      exist, it tries calling a method ``item_link()`` in the ``Feed`` class,
-      passing it a single parameter, ``item``, which is the object itself.
-      Both ``get_absolute_url()`` and ``item_link()`` should return the item's
-      URL as a normal Python string. As with ``get_absolute_url()``, the
-      result of ``item_link()`` will be included directly in the URL, so you
-      are responsible for doing all necessary URL quoting and conversion to
-      ASCII inside the method itself.
+      framework will use the template ``"{{ obj }}"`` by default -- that is, the
+      normal string representation of the object. You can also change the names
+      of these two templates by specifying ``title_template`` and
+      ``description_template`` as attributes of your
+      :class:`~django.contrib.syndication.feeds.Feed` class.
 
-    * For the LatestEntries example above, we could have very simple feed templates:
+    * To specify the contents of ``<link>``, you have two options. For each item
+      in :meth:`items()`, Django first tries executing a ``get_absolute_url()``
+      method on that object. If that method doesn't exist, it tries calling a
+      method :meth:`item_link()` in the
+      :class:`~django.contrib.syndication.feeds.Feed` class, passing it a single
+      parameter, :attr:`item`, which is the object itself. Both
+      ``get_absolute_url()`` and :meth:`item_link()` should return the item's
+      URL as a normal Python string. As with ``get_absolute_url()``, the result
+      of :meth:`item_link()` will be included directly in the URL, so you are
+      responsible for doing all necessary URL quoting and conversion to ASCII
+      inside the method itself.
 
-          * latest_title.html::
+    * For the LatestEntries example above, we could have very simple feed
+      templates:
 
-             {{ obj.title }}
+      * latest_title.html:
 
-          * latest_description.html::
+        .. code-block:: html+django
 
-             {{ obj.description }}
+            {{ obj.title }}
+
+      * latest_description.html:
+      
+        .. code-block:: html+django
+      
+            {{ obj.description }}
 
 .. _chicagocrime.org: http://www.chicagocrime.org/
-.. _object-relational mapper: ../db-api/
-.. _Django templates: ../templates/
-.. _RequestSite section of the sites framework documentation: ../sites/#requestsite-objects
 
 A complex example
 -----------------
@@ -184,15 +201,16 @@ A complex example
 The framework also supports more complex feeds, via parameters.
 
 For example, `chicagocrime.org`_ offers an RSS feed of recent crimes for every
-police beat in Chicago. It'd be silly to create a separate ``Feed`` class for
-each police beat; that would violate the `DRY principle`_ and would couple data
-to programming logic. Instead, the syndication framework lets you make generic
+police beat in Chicago. It'd be silly to create a separate
+:class:`~django.contrib.syndication.feeds.Feed` class for each police beat; that
+would violate the :ref:`DRY principle <dry>` and would couple data to
+programming logic. Instead, the syndication framework lets you make generic
 feeds that output items based on information in the feed's URL.
 
 On chicagocrime.org, the police-beat feeds are accessible via URLs like this:
 
-    * ``/rss/beats/0613/`` -- Returns recent crimes for beat 0613.
-    * ``/rss/beats/1424/`` -- Returns recent crimes for beat 1424.
+    * :file:`/rss/beats/0613/` -- Returns recent crimes for beat 0613.
+    * :file:`/rss/beats/1424/` -- Returns recent crimes for beat 1424.
 
 The slug here is ``"beats"``. The syndication framework sees the extra URL bits
 after the slug -- ``0613`` and ``1424`` -- and gives you a hook to tell it what
@@ -223,70 +241,74 @@ An example makes this clear. Here's the code for these beat-specific feeds::
             return "Crimes recently reported in police beat %s" % obj.beat
 
         def items(self, obj):
-            return Crime.objects.filter(beat__id__exact=obj.id).order_by('-crime_date')[:30]
+           return Crime.objects.filter(beat__id__exact=obj.id).order_by('-crime_date')[:30]
 
 Here's the basic algorithm the RSS framework follows, given this class and a
-request to the URL ``/rss/beats/0613/``:
+request to the URL :file:`/rss/beats/0613/`:
 
-    * The framework gets the URL ``/rss/beats/0613/`` and notices there's
-      an extra bit of URL after the slug. It splits that remaining string by
-      the slash character (``"/"``) and calls the ``Feed`` class'
-      ``get_object()`` method, passing it the bits. In this case, bits is
-      ``['0613']``. For a request to ``/rss/beats/0613/foo/bar/``, bits would
-      be ``['0613', 'foo', 'bar']``.
+    * The framework gets the URL :file:`/rss/beats/0613/` and notices there's an
+      extra bit of URL after the slug. It splits that remaining string by the
+      slash character (``"/"``) and calls the
+      :class:`~django.contrib.syndication.feeds.Feed` class'
+      :meth:`get_object()` method, passing it the bits. In this case, bits is
+      ``['0613']``. For a request to :file:`/rss/beats/0613/foo/bar/`, bits
+      would be ``['0613', 'foo', 'bar']``.
 
-    * ``get_object()`` is responsible for retrieving the given beat, from the
-      given ``bits``. In this case, it uses the Django database API to retrieve
-      the beat. Note that ``get_object()`` should raise
-      ``django.core.exceptions.ObjectDoesNotExist`` if given invalid
+    * :meth:`get_object()` is responsible for retrieving the given beat, from
+      the given ``bits``. In this case, it uses the Django database API to
+      retrieve the beat. Note that :meth:`get_object()` should raise
+      :exc:`django.core.exceptions.ObjectDoesNotExist` if given invalid
       parameters. There's no ``try``/``except`` around the
       ``Beat.objects.get()`` call, because it's not necessary; that function
-      raises ``Beat.DoesNotExist`` on failure, and ``Beat.DoesNotExist`` is a
-      subclass of ``ObjectDoesNotExist``. Raising ``ObjectDoesNotExist`` in
-      ``get_object()`` tells Django to produce a 404 error for that request.
+      raises :exc:`Beat.DoesNotExist` on failure, and :exc:`Beat.DoesNotExist`
+      is a subclass of :exc:`ObjectDoesNotExist`. Raising
+      :exc:`ObjectDoesNotExist` in :meth:`get_object()` tells Django to produce
+      a 404 error for that request.
 
-      **New in Django development version:** The ``get_object()`` method also
-      has a chance to handle the ``/rss/beats/`` url.  In this case, ``bits``
-      will be an empty list. In our example, ``len(bits) != 1`` and an
-      ``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will
-      generate a 404 page. But you can handle this case however you like.  For
-      example, you could generate a combined feed for all beats.
+      **New in Django development version:** The :meth:`get_object()` method
+      also has a chance to handle the :file:`/rss/beats/` url. In this case,
+      :data:`bits` will be an empty list. In our example, ``len(bits) != 1`` and
+      an :exc:`ObjectDoesNotExist` exception will be raised, so
+      :file:`/rss/beats/` will generate a 404 page. But you can handle this case
+      however you like. For example, you could generate a combined feed for all
+      beats.
 
     * To generate the feed's ``<title>``, ``<link>`` and ``<description>``,
-      Django uses the ``title()``, ``link()`` and ``description()`` methods. In
-      the previous example, they were simple string class attributes, but this
-      example illustrates that they can be either strings *or* methods. For
-      each of ``title``, ``link`` and ``description``, Django follows this
-      algorithm:
+      Django uses the :meth:`title()`, :meth:`link()` and :meth:`description()`
+      methods. In the previous example, they were simple string class
+      attributes, but this example illustrates that they can be either strings
+      *or* methods. For each of :attr:`title`, :attr:`link` and
+      :attr:`description`, Django follows this algorithm:
 
-          * First, it tries to call a method, passing the ``obj`` argument,
-            where ``obj`` is the object returned by ``get_object()``.
-          * Failing that, it tries to call a method with no arguments.
-          * Failing that, it uses the class attribute.
+        * First, it tries to call a method, passing the ``obj`` argument, where
+          ``obj`` is the object returned by :meth:`get_object()`.
+        
+        * Failing that, it tries to call a method with no arguments.
+        
+        * Failing that, it uses the class attribute.
 
-      Inside the ``link()`` method, we handle the possibility that ``obj``
+      Inside the :meth:`link()` method, we handle the possibility that ``obj``
       might be ``None``, which can occur when the URL isn't fully specified. In
       some cases, you might want to do something else in this case, which would
       mean you'd need to check for ``obj`` existing in other methods as well.
-      (The ``link()`` method is called very early in the feed generation
+      (The :meth:`link()` method is called very early in the feed generation
       process, so it's a good place to bail out early.)
 
-    * Finally, note that ``items()`` in this example also takes the ``obj``
-      argument. The algorithm for ``items`` is the same as described in the
-      previous step -- first, it tries ``items(obj)``, then ``items()``, then
-      finally an ``items`` class attribute (which should be a list).
+    * Finally, note that :meth:`items()` in this example also takes the ``obj``
+      argument. The algorithm for :attr:`items` is the same as described in the
+      previous step -- first, it tries :meth:`items(obj)`, then :meth:`items()`,
+      then finally an :attr:`items` class attribute (which should be a list).
 
 The ``ExampleFeed`` class below gives full documentation on methods and
-attributes of ``Feed`` classes.
-
-.. _DRY principle: http://c2.com/cgi/wiki?DontRepeatYourself
+attributes of :class:`~django.contrib.syndication.feeds.Feed` classes.
 
 Specifying the type of feed
 ---------------------------
 
 By default, feeds produced in this framework use RSS 2.0.
 
-To change that, add a ``feed_type`` attribute to your ``Feed`` class, like so::
+To change that, add a ``feed_type`` attribute to your
+:class:`~django.contrib.syndication.feeds.Feed` class, like so::
 
     from django.utils.feedgenerator import Atom1Feed
 
@@ -297,16 +319,16 @@ Note that you set ``feed_type`` to a class object, not an instance.
 
 Currently available feed types are:
 
-    * ``django.utils.feedgenerator.Rss201rev2Feed`` (RSS 2.01. Default.)
-    * ``django.utils.feedgenerator.RssUserland091Feed`` (RSS 0.91.)
-    * ``django.utils.feedgenerator.Atom1Feed`` (Atom 1.0.)
+    * :class:`django.utils.feedgenerator.Rss201rev2Feed` (RSS 2.01. Default.)
+    * :class:`django.utils.feedgenerator.RssUserland091Feed` (RSS 0.91.)
+    * :class:`django.utils.feedgenerator.Atom1Feed` (Atom 1.0.)
 
 Enclosures
 ----------
 
 To specify enclosures, such as those used in creating podcast feeds, use the
-``item_enclosure_url``, ``item_enclosure_length`` and
-``item_enclosure_mime_type`` hooks. See the ``ExampleFeed`` class below for
+:attr:`item_enclosure_url`, :attr:`item_enclosure_length` and
+:attr:`item_enclosure_mime_type` hooks. See the ``ExampleFeed`` class below for
 usage examples.
 
 Language
@@ -314,31 +336,28 @@ Language
 
 Feeds created by the syndication framework automatically include the
 appropriate ``<language>`` tag (RSS 2.0) or ``xml:lang`` attribute (Atom). This
-comes directly from your `LANGUAGE_CODE setting`_.
-
-.. _LANGUAGE_CODE setting: ../settings/#language-code
+comes directly from your :setting:`LANGUAGE_CODE setting`.
 
 URLs
 ----
 
-The ``link`` method/attribute can return either an absolute URL (e.g.
-``"/blog/"``) or a URL with the fully-qualified domain and protocol (e.g.
-``"http://www.example.com/blog/"``). If ``link`` doesn't return the domain,
+The :attr:`link` method/attribute can return either an absolute URL (e.g.
+:file:`"/blog/"`) or a URL with the fully-qualified domain and protocol (e.g.
+``"http://www.example.com/blog/"``). If :attr:`link` doesn't return the domain,
 the syndication framework will insert the domain of the current site, according
-to your `SITE_ID setting`_.
+to your :setting:`SITE_ID setting <SITE_ID>`.
 
 Atom feeds require a ``<link rel="self">`` that defines the feed's current
 location. The syndication framework populates this automatically, using the
-domain of the current site according to the SITE_ID setting.
-
-.. _SITE_ID setting: ../settings/#site-id
+domain of the current site according to the :setting:`SITE_ID` setting.
 
 Publishing Atom and RSS feeds in tandem
 ---------------------------------------
 
 Some developers like to make available both Atom *and* RSS versions of their
-feeds. That's easy to do with Django: Just create a subclass of your ``Feed``
-class and set the ``feed_type`` to something different. Then update your
+feeds. That's easy to do with Django: Just create a subclass of your
+:class:`~django.contrib.syndication.feeds.Feed`
+class and set the :attr:`feed_type` to something different. Then update your
 URLconf to add the extra versions.
 
 Here's a full example::
@@ -360,17 +379,18 @@ Here's a full example::
         subtitle = RssSiteNewsFeed.description
 
 .. Note::
-    In this example, the RSS feed uses a ``description`` while the Atom feed
-    uses a ``subtitle``. That's because Atom feeds don't provide for a
-    feed-level "description," but they *do* provide for a "subtitle."
+    In this example, the RSS feed uses a :attr:`description` while the Atom
+    feed uses a :attr:`subtitle`. That's because Atom feeds don't provide for
+    a feed-level "description," but they *do* provide for a "subtitle."
 
-    If you provide a ``description`` in your ``Feed`` class, Django will *not*
-    automatically put that into the ``subtitle`` element, because a subtitle
-    and description are not necessarily the same thing. Instead, you should
-    define a ``subtitle`` attribute.
+    If you provide a :attr:`description` in your
+    :class:`~django.contrib.syndication.feeds.Feed` class, Django will *not*
+    automatically put that into the :attr:`subtitle` element, because a
+    subtitle and description are not necessarily the same thing. Instead, you
+    should define a :attr:`subtitle` attribute.
 
-    In the above example, we simply set the Atom feed's ``subtitle`` to the
-    RSS feed's ``description``, because it's quite short already.
+    In the above example, we simply set the Atom feed's :attr:`subtitle` to the
+    RSS feed's :attr:`description`, because it's quite short already.
 
 And the accompanying URLconf::
 
@@ -392,7 +412,10 @@ And the accompanying URLconf::
 Feed class reference
 --------------------
 
-This example illustrates all possible attributes and methods for a ``Feed`` class::
+.. class:: django.contrib.syndication.feeds.Feed
+
+This example illustrates all possible attributes and methods for a
+:class:`~django.contrib.syndication.feeds.Feed` class::
 
     from django.contrib.syndication.feeds import Feed
     from django.utils import feedgenerator
@@ -808,26 +831,30 @@ also create custom feed generator subclasses for use with the ``feed_type``
 ``SyndicationFeed`` classes
 ---------------------------
 
-The ``feedgenerator`` module contains a base class ``SyndicationFeed`` and
-several subclasses:
+The :mod:`~django.utils.feedgenerator` module contains a base class:
 
-    * ``RssUserland091Feed``
-    * ``Rss201rev2Feed``
-    * ``Atom1Feed``
+.. class:: django.utils.feedgenerator.SyndicationFeed
+
+and several subclasses:
+
+.. class:: django.utils.feedgenerator.RssUserland091Feed
+.. class:: django.utils.feedgenerator.Rss201rev2Feed
+.. class:: django.utils.feedgenerator.Atom1Feed
 
 Each of these three classes knows how to render a certain type of feed as XML.
 They share this interface:
 
-``SyndicationFeed.__init__(**kwargs)``
+.. method:: SyndicationFeed.__init__(**kwargs)
+
     Initialize the feed with the given dictionary of metadata, which applies to
     the entire feed. Required keyword arguments are:
     
         * ``title``
         * ``link``
         * ``description``
-        
-    There's also a bunch of other optional keywords:
     
+    There's also a bunch of other optional keywords:
+
         * ``language``
         * ``author_email``
         * ``author_name``
@@ -838,18 +865,19 @@ They share this interface:
         * ``feed_copyright``
         * ``feed_guid``
         * ``ttl``
-        
+    
     Any extra keyword arguments you pass to ``__init__`` will be stored in
     ``self.feed`` for use with `custom feed generators`_.
 
     All parameters should be Unicode objects, except ``categories``, which
     should be a sequence of Unicode objects.
 
-``SyndicationFeed.add_item(**kwargs)``
+.. method:: SyndicationFeed.add_item(**kwargs)
+
     Add an item to the feed with the given parameters. 
 
     Required keyword arguments are:
-    
+
         * ``title``
         * ``link``
         * ``description``
@@ -873,14 +901,15 @@ They share this interface:
 
         * ``pubdate`` should be a `Python datetime object`_.
         * ``enclosure`` should be an instance of ``feedgenerator.Enclosure``.
-        * ``categories`` should be a sequence of Unicode objects.
-        
-``SyndicationFeed.write(outfile, encoding)``
-    Outputs the feed in the given ``encoding`` to ``outfile``, which must be a
-    file-like object.
+        * ``categories`` should be a sequence of Unicode objects.    
 
-``SyndicationFeed.writeString(encoding)``
-    Returns the feed as a string in the given ``encoding``.
+.. method:: SyndicationFeed.write(outfile, encoding)
+
+    Outputs the feed in the given encoding to outfile, which is a file-like object.
+
+.. method:: SyndicationFeed.writeString(encoding)
+
+    Returns the feed as a string in the given encoding.
 
 For example, to create an Atom 1.0 feed and print it to standard output::
 
diff --git a/docs/webdesign.txt b/docs/ref/contrib/webdesign.txt
similarity index 74%
rename from docs/webdesign.txt
rename to docs/ref/contrib/webdesign.txt
index 8e6eae89dd..e69ad49232 100644
--- a/docs/webdesign.txt
+++ b/docs/ref/contrib/webdesign.txt
@@ -1,22 +1,27 @@
+.. _ref-contrib-webdesign:
+
 ========================
 django.contrib.webdesign
 ========================
 
-The ``django.contrib.webdesign`` package, part of the `"django.contrib" add-ons`_,
-provides various Django helpers that are particularly useful to Web *designers*
-(as opposed to developers).
+.. module:: django.contrib.webdesign
+   :synopsis: Helpers and utilities targeted primarily at Web *designers*
+              rather than Web *developers*.
+
+The ``django.contrib.webdesign`` package, part of the
+:ref:`"django.contrib" add-ons <ref-contrib-index>`, provides various Django
+helpers that are particularly useful to Web *designers* (as opposed to
+developers).
 
 At present, the package contains only a single template tag. If you have ideas
-for Web-designer-friendly functionality in Django, please `suggest them`_.
-
-.. _"django.contrib" add-ons: ../add_ons/
-.. _suggest them: ../contributing/
+for Web-designer-friendly functionality in Django, please
+:ref:`suggest them <internals-contributing>`.
 
 Template tags
 =============
 
 To use these template tags, add ``'django.contrib.webdesign'`` to your
-``INSTALLED_APPS`` setting. Once you've done that, use
+:setting:`INSTALLED_APPS` setting. Once you've done that, use
 ``{% load webdesign %}`` in a template to give your template access to the tags.
 
 
diff --git a/docs/databases.txt b/docs/ref/databases.txt
similarity index 91%
rename from docs/databases.txt
rename to docs/ref/databases.txt
index 0fb6381c5c..c3c079b01d 100644
--- a/docs/databases.txt
+++ b/docs/ref/databases.txt
@@ -1,3 +1,5 @@
+.. _ref-databases:
+
 ===============================
 Notes about supported databases
 ===============================
@@ -100,14 +102,15 @@ This ensures all tables and columns will use UTF-8 by default.
 Connecting to the database
 --------------------------
 
-Refer to the `settings documentation`_.
+Refer to the :ref:`settings documentation <ref-settings>`. 
 
 Connection settings are used in this order:
 
- 1. ``DATABASE_OPTIONS``
- 2. ``DATABASE_NAME``, ``DATABASE_USER``, ``DATABASE_PASSWORD``, ``DATABASE_HOST``,
-    ``DATABASE_PORT``
- 3. MySQL option files.
+    1. :setting:`DATABASE_OPTIONS`.
+    2. :setting:`DATABASE_NAME`, :setting:`DATABASE_USER`,
+       :setting:`DATABASE_PASSWORD`, :setting:`DATABASE_HOST`,
+       :setting:`DATABASE_PORT`
+    3. MySQL option files.
 
 In other words, if you set the name of the database in ``DATABASE_OPTIONS``,
 this will take precedence over ``DATABASE_NAME``, which would override
@@ -132,7 +135,6 @@ Several other MySQLdb connection options may be useful, such as ``ssl``,
 ``use_unicode``, ``init_command``, and ``sql_mode``. Consult the
 `MySQLdb documentation`_ for more details.
 
-.. _settings documentation: ../settings/#database-engine
 .. _MySQL option file: http://dev.mysql.com/doc/refman/5.0/en/option-files.html
 .. _MySQLdb documentation: http://mysql-python.sourceforge.net/
 
@@ -172,6 +174,8 @@ storage engine, you have a couple of options.
 .. _AlterModelOnSyncDB: http://code.djangoproject.com/wiki/AlterModelOnSyncDB
 
 
+.. _oracle-notes:
+
 Oracle notes
 ============
 
@@ -185,18 +189,18 @@ operators. You will also need the `cx_Oracle`_ driver, version 4.3.1 or newer.
 In order for the ``python manage.py syncdb`` command to work, your Oracle
 database user must have privileges to run the following commands:
 
-	* CREATE TABLE
-	* CREATE SEQUENCE
-	* CREATE PROCEDURE
-	* CREATE TRIGGER
-
+    * CREATE TABLE
+    * CREATE SEQUENCE
+    * CREATE PROCEDURE
+    * CREATE TRIGGER
+    
 To run Django's test suite, the user needs these *additional* privileges:
 
- 	* CREATE USER
-	* DROP USER
-	* CREATE TABLESPACE
-	* DROP TABLESPACE
-
+    * CREATE USER
+    * DROP USER
+    * CREATE TABLESPACE
+    * DROP TABLESPACE
+    
 Connecting to the database
 --------------------------
 
@@ -210,8 +214,8 @@ Your Django settings.py file should look something like this for Oracle::
     DATABASE_PORT = ''
 
 If you don't use a ``tnsnames.ora`` file or a similar naming method that
-recognizes the SID ("xe" in this example), then fill in both ``DATABASE_HOST``
-and ``DATABASE_PORT`` like so::
+recognizes the SID ("xe" in this example), then fill in both
+:setting:`DATABASE_HOST` and :setting:`DATABASE_PORT` like so::
 
     DATABASE_ENGINE = 'oracle'
     DATABASE_NAME = 'xe'
@@ -220,7 +224,7 @@ and ``DATABASE_PORT`` like so::
     DATABASE_HOST = 'dbprod01ned.mycompany.com'
     DATABASE_PORT = '1540'
 
-You should supply both ``DATABASE_HOST`` and ``DATABASE_PORT``, or leave both
+You should supply both :setting:`DATABASE_HOST` and :setting:`DATABASE_PORT`, or leave both
 as empty strings.
 
 Tablespace options
@@ -239,9 +243,7 @@ supplying the ``db_tablespace`` option inside the model's ``class Meta``.
 Additionally, you can pass the ``db_tablespace`` option to a ``Field``
 constructor to specify an alternate tablespace for the ``Field``'s column
 index. If no index would be created for the column, the ``db_tablespace``
-option is ignored.
-
-::
+option is ignored::
 
     class TablespaceExample(models.Model):
         name = models.CharField(max_length=30, db_index=True, db_tablespace="indexes")
@@ -258,9 +260,9 @@ many-to-many table would be stored in the ``indexes`` tablespace. The ``data``
 field would also generate an index, but no tablespace for it is specified, so
 it would be stored in the model tablespace ``tables`` by default.
 
-**New in the Django development version:** Use the ``DEFAULT_TABLESPACE`` and
-``DEFAULT_INDEX_TABLESPACE`` settings to specify default values for the
-db_tablespace options. These are useful for setting a tablespace for the
+**New in the Django development version:** Use the :setting:`DEFAULT_TABLESPACE`
+and :setting:`DEFAULT_INDEX_TABLESPACE` settings to specify default values for
+the db_tablespace options. These are useful for setting a tablespace for the
 built-in Django apps and other applications whose code you cannot control.
 
 Django does not create the tablespaces for you. Please refer to `Oracle's
diff --git a/docs/django-admin.txt b/docs/ref/django-admin.txt
similarity index 85%
rename from docs/django-admin.txt
rename to docs/ref/django-admin.txt
index f827a7243b..d6cb4e62f3 100644
--- a/docs/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -1,3 +1,5 @@
+.. _ref-django-admin:
+
 =============================
 django-admin.py and manage.py
 =============================
@@ -11,18 +13,18 @@ two things for you before delegating to ``django-admin.py``:
 
     * It puts your project's package on ``sys.path``.
 
-    * It sets the ``DJANGO_SETTINGS_MODULE`` environment variable so that it
-      points to your project's ``settings.py`` file.
+    * It sets the :envvar:`DJANGO_SETTINGS_MODULE` environment variable so that
+      it points to your project's ``settings.py`` file.
 
 The ``django-admin.py`` script should be on your system path if you installed
-Django via its ``setup.py`` utility. If it's not on your path, you can find it in
-``site-packages/django/bin`` within your Python installation. Consider
+Django via its ``setup.py`` utility. If it's not on your path, you can find it
+in ``site-packages/django/bin`` within your Python installation. Consider
 symlinking it from some place on your path, such as ``/usr/local/bin``.
 
-For Windows users, who do not have symlinking functionality available, you
-can copy ``django-admin.py`` to a location on your existing path or edit the
-``PATH`` settings (under ``Settings - Control Panel - System - Advanced - Environment...``)
-to point to its installed location.
+For Windows users, who do not have symlinking functionality available, you can
+copy ``django-admin.py`` to a location on your existing path or edit the
+``PATH`` settings (under ``Settings - Control Panel - System - Advanced -
+Environment...``) to point to its installed location.
 
 Generally, when working on a single Django project, it's easier to use
 ``manage.py``. Use ``django-admin.py`` with ``DJANGO_SETTINGS_MODULE``, or the
@@ -35,9 +37,10 @@ be consistent, but any example can use ``manage.py`` just as well.
 Usage
 =====
 
-``django-admin.py <subcommand> [options]``
+.. code-block:: bash
 
-``manage.py <subcommand> [options]``
+    django-admin.py <subcommand> [options]
+    manage.py <subcommand> [options]
 
 ``subcommand`` should be one of the subcommands listed in this document.
 ``options``, which is optional, should be zero or more of the options available
@@ -46,6 +49,8 @@ for the given subcommand.
 Getting runtime help
 --------------------
 
+.. django-admin-option:: --help
+
 In Django 0.96, run ``django-admin.py --help`` to display a help message that
 includes a terse list of all available subcommands and options.
 
@@ -64,26 +69,42 @@ contains the string ``'mysite.blog'``, the app name is ``blog``.
 Determining the version
 -----------------------
 
+.. django-admin-option:: --version
+
 Run ``django-admin.py --version`` to display the current Django version.
 
 Examples of output::
 
-	0.95
+    0.95
     0.96
     0.97-pre-SVN-6069
 
+Displaying debug output
+-----------------------
+
+.. django-admin-option:: --verbosity <amount>
+
+Use ``--verbosity`` to specify the amount of notification and debug information
+that ``django-admin.py`` should print to the console.
+
+    * ``0`` means no output.
+    * ``1`` means normal output (default).
+    * ``2`` means verbose output.
+
+
 Available subcommands
 =====================
 
-adminindex <appname appname ...>
---------------------------------
+adminindex
+----------
+
+.. django-admin:: adminindex <appname appname ...>
 
 Prints the admin-index template snippet for the given app name(s).
 
 Use admin-index template snippets if you want to customize the look and feel of
-your admin's index page. See `Tutorial 2`_ for more information.
-
-.. _Tutorial 2: ../tutorial02/
+your admin's index page. See :ref:`Tutorial 2 <intro-tutorial02>` for more
+information.
 
 cleanup 
 -------
@@ -99,7 +120,7 @@ compilemessages
 **New in Django development version**
 
 Compiles .po files created with ``makemessages`` to .mo files for use with
-the builtin gettext support. See the `i18n documentation`_ for details.
+the builtin gettext support. See :ref:`topics-i18n`.
 
 --locale
 ~~~~~~~~
@@ -111,17 +132,19 @@ Example usage::
 
     django-admin.py compilemessages --locale=br_PT
 
-createcachetable <tablename>
-----------------------------
+createcachetable 
+----------------
+
+.. django-admin:: createcachetable <tablename>
 
 Creates a cache table named ``tablename`` for use with the database cache
-backend. See the `cache documentation`_ for more information.
-
-.. _cache documentation: ../cache/
+backend. See :ref:`topics-cache` for more information.
 
 createsuperuser
 ---------------
 
+.. django-admin:: createsuperuser 
+
 **New in Django development version**
 
 Creates a superuser account (a user who has all permissions). This is
@@ -134,19 +157,22 @@ the new superuser account. When run non-interactively, no password
 will be set, and the superuser account will not be able to log in until
 a password has been manually set for it.
 
+.. django-admin-option:: --username
+.. django-admin-option:: --email
+
 The username and e-mail address for the new account can be supplied by
 using the ``--username`` and ``--email`` arguments on the command
 line. If either of those is not supplied, ``createsuperuser`` will prompt for
 it when running interactively.
 
-This command is only available if Django's `authentication system`_
-(``django.contrib.auth``) is installed.
-
-.. _authentication system: ../authentication/
+This command is only available if Django's :ref:`authentication system
+<topics-auth>` (``django.contrib.auth``) is installed.
 
 dbshell
 -------
 
+.. django-admin:: dbshell
+
 Runs the command-line client for the database engine specified in your
 ``DATABASE_ENGINE`` setting, with the connection parameters specified in your
 ``DATABASE_USER``, ``DATABASE_PASSWORD``, etc., settings.
@@ -163,8 +189,10 @@ manually.
 diffsettings
 ------------
 
+.. django-admin:: diffsettings
+
 Displays differences between the current settings file and Django's default
-settings.
+settings. 
 
 Settings that don't appear in the defaults are followed by ``"###"``. For
 example, the default settings don't define ``ROOT_URLCONF``, so
@@ -173,8 +201,10 @@ example, the default settings don't define ``ROOT_URLCONF``, so
 Note that Django's default settings live in ``django/conf/global_settings.py``,
 if you're ever curious to see the full list of defaults.
 
-dumpdata <appname appname ...>
-------------------------------
+dumpdata
+--------
+
+.. django-admin:: dumpdata <appname appname ...>
 
 Outputs to standard output all data in the database associated with the named
 application(s).
@@ -184,14 +214,11 @@ If no application name is provided, all installed applications will be dumped.
 The output of ``dumpdata`` can be used as input for ``loaddata``.
 
 Note that ``dumpdata`` uses the default manager on the model for selecting the
-records to dump. If you're using a `custom manager`_ as the default manager
-and it filters some of the available records, not all of the objects will be
-dumped.
+records to dump. If you're using a :ref:`custom manager <custom-managers>` as
+the default manager and it filters some of the available records, not all of the
+objects will be dumped.
 
-.. _custom manager: ../model-api/#custom-managers
-
---exclude
-~~~~~~~~~
+.. django-admin-option:: --exclude
 
 **New in Django development version**
 
@@ -199,40 +226,31 @@ Exclude a specific application from the applications whose contents is
 output. For example, to specifically exclude the `auth` application from
 the output, you would call::
 
-	django-admin.py dumpdata --exclude=auth
+    django-admin.py dumpdata --exclude=auth
 
 If you want to exclude multiple applications, use multiple ``--exclude``
 directives::
 
-	django-admin.py dumpdata --exclude=auth --exclude=contenttype
+    django-admin.py dumpdata --exclude=auth --exclude=contenttype
 
---format
-~~~~~~~~
 
-By default, ``dumpdata`` will format its output in JSON, but you can use the
-``--format`` option to specify another format. Currently supported formats are
-listed in `Serialization formats`_.
+.. django-admin-option:: --format <fmt>
 
-Example usage::
+    By default, ``dumpdata`` will format its output in JSON, but you can use the
+    ``--format`` option to specify another format. Currently supported formats
+    are listed in :ref:`serialization-formats`.
 
-    django-admin.py dumpdata --format=xml
+.. django-admin-option:: --indent <num>
 
-.. _Serialization formats: ../serialization/#serialization-formats
-
---indent
-~~~~~~~~
-
-By default, ``dumpdata`` will output all data on a single line. This isn't easy
-for humans to read, so you can use the ``--indent`` option to pretty-print the
-output with a number of indentation spaces.
-
-Example usage::
-
-    django-admin.py dumpdata --indent=4
+    By default, ``dumpdata`` will output all data on a single line. This isn't
+    easy for humans to read, so you can use the ``--indent`` option to
+    pretty-print the output with a number of indentation spaces.
 
 flush
 -----
 
+.. django-admin: flush
+
 Returns the database to the state it was in immediately after syncdb was
 executed. This means that all data will be removed from the database, any
 post-synchronization handlers will be re-executed, and the ``initial_data``
@@ -245,26 +263,11 @@ models and/or weren't in ``INSTALLED_APPS``). Now, the command only clears
 tables that are represented by Django models and are activated in
 ``INSTALLED_APPS``.
 
---noinput
-~~~~~~~~~
+.. django-admin-option:: --noinput
 
-Use the ``--noinput`` option to suppress all user prompting, such as
-"Are you sure?" confirmation messages. This is useful if ``django-admin.py``
-is being executed as an unattended, automated script.
-
---verbosity
-~~~~~~~~~~~
-
-Use ``--verbosity`` to specify the amount of notification and debug information
-that ``django-admin.py`` should print to the console.
-
-	* ``0`` means no output.
-	* ``1`` means normal output (default).
-	* ``2`` means verbose output.
-
-Example usage::
-
-    django-admin.py flush --verbosity=2
+    Use the ``--noinput`` option to suppress all user prompting, such as "Are
+    you sure?" confirmation messages. This is useful if ``django-admin.py`` is
+    being executed as an unattended, automated script.
 
 inspectdb
 ---------
@@ -395,12 +398,10 @@ makemessages
 
 Runs over the entire source tree of the current directory and pulls out all
 strings marked for translation. It creates (or updates) a message file in the
-conf/locale (in the Django tree) or locale (for project and application)
+conf/locale (in the django tree) or locale (for project and application)
 directory. After making changes to the messages files you need to compile them
 with ``compilemessages`` for use with the builtin gettext support. See the
-`i18n documentation`_ for details.
-
-.. _i18n documentation: ../i18n/#how-to-create-language-files
+:ref:`i18n documentation <how-to-create-language-files>` for details.
 
 --all
 ~~~~~
@@ -473,12 +474,11 @@ is being executed as an unattended, automated script.
 runfcgi [options]
 -----------------
 
-Starts a set of FastCGI processes suitable for use with any Web server
-that supports the FastCGI protocol. See the `FastCGI deployment
-documentation`_ for details. Requires the Python FastCGI module from
+Starts a set of FastCGI processes suitable for use with any Web server that
+supports the FastCGI protocol. See the :ref:`FastCGI deployment documentation
+<howto-deployment-fastcgi>` for details. Requires the Python FastCGI module from
 `flup`_.
 
-.. _FastCGI deployment documentation: ../fastcgi/
 .. _flup: http://www.saddi.com/software/flup/
 
 runserver [optional port number, or ipaddr:port]
@@ -562,10 +562,15 @@ Serving static files with the development server
 
 By default, the development server doesn't serve any static files for your site
 (such as CSS files, images, things under ``MEDIA_URL`` and so forth). If
-you want to configure Django to serve static media, read the `serving static files`_
-documentation.
+you want to configure Django to serve static media, read :ref:`howto-static-files`.
 
-.. _serving static files: ../static_files/
+Turning off auto-reload
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To disable auto-reloading of code while the development server is running, use the
+``--noreload`` option, like so::
+
+    django-admin.py runserver --noreload
 
 shell
 -----
@@ -707,10 +712,8 @@ is being executed as an unattended, automated script.
 test
 ----
 
-Runs tests for all installed models.  See `Testing Django applications`_
-for more information.
-
-.. _testing Django applications: ../testing/
+Runs tests for all installed models. See :ref:`topics-testing` for more
+information.
 
 --noinput
 ~~~~~~~~~
@@ -747,7 +750,7 @@ For example, this command::
 
 ...would perform the following steps:
 
-    1. Create a test database, as described in `testing Django applications`_.
+    1. Create a test database, as described in :ref:`topics-testing`.
     2. Populate the test database with fixture data from the given fixtures.
        (For more on fixtures, see the documentation for ``loaddata`` above.)
     3. Runs the Django development server (as in ``runserver``), pointed at
@@ -755,9 +758,9 @@ For example, this command::
 
 This is useful in a number of ways:
 
-    * When you're writing `unit tests`_ of how your views act with certain
-      fixture data, you can use ``testserver`` to interact with the views in
-      a Web browser, manually.
+    * When you're writing :ref:`unit tests <topics-testing>` of how your views
+      act with certain fixture data, you can use ``testserver`` to interact with
+      the views in a Web browser, manually.
 
     * Let's say you're developing your Django application and have a "pristine"
       copy of a database that you'd like to interact with. You can dump your
@@ -771,8 +774,6 @@ Note that this server does *not* automatically detect changes to your Python
 source code (as ``runserver`` does). It does, however, detect changes to
 templates.
 
-.. _unit tests: ../testing/
-
 --addrport [port number or ipaddr:port]
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -887,34 +888,6 @@ distribution. It enables tab-completion of ``django-admin.py`` and
     * Type ``sql``, then [TAB], to see all available options whose names start
       with ``sql``.
 
-Customized actions
-==================
 
-**New in Django development version**
 
-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.
-
-To do this, just add a ``management/commands`` directory to your application.
-Each Python module in that directory will be auto-discovered and registered as
-a command that can be executed as an action when you run ``manage.py``::
-
-    blog/
-        __init__.py
-        models.py
-        management/
-            __init__.py
-            commands/
-                __init__.py
-                explode.py
-        views.py
-
-In this example, the ``explode`` command will be made available to any project
-that includes the ``blog`` application in ``settings.INSTALLED_APPS``.
-
-The ``explode.py`` module has only one requirement -- it must define a class
-called ``Command`` that extends ``django.core.management.base.BaseCommand``.
-
-For more details on how to define your own commands, look at the code for the
-existing ``django-admin.py`` commands, in ``/django/core/management/commands``.
+See :ref:`howto-custom-management-commands` for how to add customized actions. 
diff --git a/docs/ref/files/file.txt b/docs/ref/files/file.txt
new file mode 100644
index 0000000000..bc59311792
--- /dev/null
+++ b/docs/ref/files/file.txt
@@ -0,0 +1,117 @@
+.. _ref-files-file:
+
+The ``File`` object
+===================
+
+.. currentmodule:: django.core.files
+
+.. class:: File(file_object)
+
+``File`` attributes and methods
+-------------------------------
+
+Django's ``File`` has the following attributes and methods:
+
+``File.path``
+~~~~~~~~~~~~~
+
+The absolute path to the file's location on a local filesystem.
+
+:ref:`Custom file storage systems <howto-custom-file-storage>` may not store
+files locally; files stored on these systems will have a ``path`` of ``None``.
+
+``File.url``
+~~~~~~~~~~~~
+
+The URL where the file can be retrieved. This is often useful in :ref:`templates
+<topics-templates>`; for example, a bit of a template for displaying a ``Car``
+(see above) might look like::
+
+    <img src='{{ car.photo.url }}' alt='{{ car.name }}' />
+
+``File.size``
+~~~~~~~~~~~~~
+
+The size of the file in bytes.
+
+``File.open(mode=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Open or reopen the file (which by definition also does ``File.seek(0)``). The
+``mode`` argument allows the same values as Python's standard ``open()``.
+
+When reopening a file, ``mode`` will override whatever mode the file was
+originally opened with; ``None`` means to reopen with the original mode.
+
+``File.read(num_bytes=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Read content from the file. The optional ``size`` is the number of bytes to
+read; if not specified, the file will be read to the end.
+
+``File.__iter__()``
+~~~~~~~~~~~~~~~~~~~
+
+Iterate over the file yielding one line at a time.
+
+``File.chunks(chunk_size=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Iterate over the file yielding "chunks" of a given size. ``chunk_size`` defaults
+to 64 KB.
+
+This is especially useful with very large files since it allows them to be
+streamed off disk and avoids storing the whole file in memory.
+
+``File.multiple_chunks(chunk_size=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Returns ``True`` if the file is large enough to require multiple chunks to
+access all of its content give some ``chunk_size``.
+
+``File.write(content)``
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Writes the specified content string to the file. Depending on the storage system
+behind the scenes, this content might not be fully committed until ``close()``
+is called on the file.
+
+``File.close()``
+~~~~~~~~~~~~~~~~
+
+Close the file.
+
+Additional ``ImageField`` attributes
+------------------------------------
+
+``File.width`` and ``File.height``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+These attributes provide the dimensions of the image.
+
+Additional methods on files attached to objects
+-----------------------------------------------
+
+Any ``File`` that's associated with an object (as with ``Car.photo``, above)
+will also have a couple of extra methods:
+
+``File.save(name, content, save=True)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Saves a new file with the file name and contents provided. This will not replace
+the existing file, but will create a new file and update the object to point to
+it. If ``save`` is ``True``, the model's ``save()`` method will be called once
+the file is saved. That is, these two lines::
+
+    >>> car.photo.save('myphoto.jpg', contents, save=False)
+    >>> car.save()
+
+are the same as this one line::
+
+    >>> car.photo.save('myphoto.jpg', contents, save=True)
+
+``File.delete(save=True)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Remove the file from the model instance and delete the underlying file. The
+``save`` argument works as above.
diff --git a/docs/ref/files/index.txt b/docs/ref/files/index.txt
new file mode 100644
index 0000000000..bdc327b2d7
--- /dev/null
+++ b/docs/ref/files/index.txt
@@ -0,0 +1,13 @@
+.. _ref-files-index:
+
+File handling reference
+=======================
+
+.. module:: django.core.files
+   :synopsis: File handling and storage
+
+.. toctree::
+   :maxdepth: 1
+   
+   file
+   storage
\ No newline at end of file
diff --git a/docs/ref/files/storage.txt b/docs/ref/files/storage.txt
new file mode 100644
index 0000000000..a09cd2f86d
--- /dev/null
+++ b/docs/ref/files/storage.txt
@@ -0,0 +1,50 @@
+.. _ref-files-storage:
+
+File storage API
+================
+
+``Storage.exists(name)``
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+``True`` if a file exists given some ``name``.
+
+``Storage.path(name)``
+~~~~~~~~~~~~~~~~~~~~~~
+
+The local filesystem path where the file can be opened using Python's standard
+``open()``. For storage systems that aren't accessible from the local
+filesystem, this will raise ``NotImplementedError`` instead.
+
+``Storage.size(name)``
+~~~~~~~~~~~~~~~~~~~~~~
+
+Returns the total size, in bytes, of the file referenced by ``name``.
+
+``Storage.url(name)``
+~~~~~~~~~~~~~~~~~~~~~
+
+Returns the URL where the contents of the file referenced by ``name`` can be
+accessed.
+
+``Storage.open(name, mode='rb')``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Opens the file given by ``name``. Note that although the returned file is
+guaranteed to be a ``File`` object, it might actually be some subclass. In the
+case of remote file storage this means that reading/writing could be quite slow,
+so be warned.
+
+``Storage.save(name, content)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Saves a new file using the storage system, preferably with the name specified.
+If there already exists a file with this name ``name``, the storage system may
+modify the filename as necessary to get a unique name. The actual name of the
+stored file will be returned.
+
+``Storage.delete(name)``
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Deletes the file referenced by ``name``. This method won't raise an exception if
+the file doesn't exist.
+
diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt
new file mode 100644
index 0000000000..f8d8a9940a
--- /dev/null
+++ b/docs/ref/forms/api.txt
@@ -0,0 +1,688 @@
+.. _ref-forms-api:
+
+=============
+The Forms API
+=============
+
+.. currentmodule:: django.forms
+
+.. admonition:: About this document
+
+    This document covers the gritty details of Django's forms API. You should
+    read the :ref:`introduction to working with forms <topics-forms-index>`
+    first.
+
+.. _ref-forms-api-bound-unbound:
+
+Bound and unbound forms
+-----------------------
+
+A :class:`Form` instance is either **bound** to a set of data, or **unbound**.
+
+    * If it's **bound** to a set of data, it's capable of validating that data
+      and rendering the form as HTML with the data displayed in the HTML.
+
+    * If it's **unbound**, it cannot do validation (because there's no data to
+      validate!), but it can still render the blank form as HTML.
+
+To create an unbound :class:`Form` instance, simply instantiate the class::
+
+    >>> f = ContactForm()
+
+To bind data to a form, pass the data as a dictionary as the first parameter to
+your :class:`Form` class constructor::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+
+In this dictionary, the keys are the field names, which correspond to the
+attributes in your :class:`Form` class. The values are the data you're trying to
+validate. These will usually be strings, but there's no requirement that they be
+strings; the type of data you pass depends on the :class:`Field`, as we'll see
+in a moment.
+
+.. attribute:: Form.is_bound
+
+If you need to distinguish between bound and unbound form instances at runtime,
+check the value of the form's :attr:`~Form.is_bound` attribute::
+
+    >>> f = ContactForm()
+    >>> f.is_bound
+    False
+    >>> f = ContactForm({'subject': 'hello'})
+    >>> f.is_bound
+    True
+
+Note that passing an empty dictionary creates a *bound* form with empty data::
+
+    >>> f = ContactForm({})
+    >>> f.is_bound
+    True
+
+If you have a bound :class:`Form` instance and want to change the data somehow,
+or if you want to bind an unbound :class:`Form` instance to some data, create
+another :class:`Form` instance. There is no way to change data in a
+:class:`Form` instance. Once a :class:`Form` instance has been created, you
+should consider its data immutable, whether it has data or not.
+
+Using forms to validate data
+----------------------------
+
+.. method:: Form.is_valid()
+
+The primary task of a :class:`Form` object is to validate data. With a bound
+:class:`Form` instance, call the :meth:`~Form.is_valid` method to run validation
+and return a boolean designating whether the data was valid::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    True
+
+Let's try with some invalid data. In this case, ``subject`` is blank (an error,
+because all fields are required by default) and ``sender`` is not a valid
+e-mail address::
+
+    >>> data = {'subject': '',
+    ...         'message': 'Hi there',
+    ...         'sender': 'invalid e-mail address',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    False
+    
+.. attribute:: Form.errors
+
+Access the :attr:`~Form.errors` attribute to get a dictionary of error
+messages::
+
+    >>> f.errors
+    {'sender': [u'Enter a valid e-mail address.'], 'subject': [u'This field is required.']}
+
+In this dictionary, the keys are the field names, and the values are lists of
+Unicode strings representing the error messages. The error messages are stored
+in lists because a field can have multiple error messages.
+
+You can access :attr:`~Form.errors` without having to call
+:meth:`~Form.is_valid` first. The form's data will be validated the first time
+either you call :meth:`~Form.is_valid` or access :attr:`~Form.errors`.
+
+The validation routines will only get called once, regardless of how many times
+you access :attr:`~Form.errors` or call :meth:`~Form.is_valid`. This means that
+if validation has side effects, those side effects will only be triggered once.
+
+Behavior of unbound forms
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It's meaningless to validate a form with no data, but, for the record, here's
+what happens with unbound forms::
+
+    >>> f = ContactForm()
+    >>> f.is_valid()
+    False
+    >>> f.errors
+    {}
+
+Accessing "clean" data
+----------------------
+
+Each ``Field`` in a ``Form`` class is responsible not only for validating data,
+but also for "cleaning" it -- normalizing it to a consistent format. This is a
+nice feature, because it allows data for a particular field to be input in
+a variety of ways, always resulting in consistent output.
+
+For example, ``DateField`` normalizes input into a Python ``datetime.date``
+object. Regardless of whether you pass it a string in the format
+``'1994-07-15'``, a ``datetime.date`` object or a number of other formats,
+``DateField`` will always normalize it to a ``datetime.date`` object as long as
+it's valid.
+
+Once you've created a ``Form`` instance with a set of data and validated it,
+you can access the clean data via the ``cleaned_data`` attribute of the ``Form``
+object::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    True
+    >>> f.cleaned_data
+    {'cc_myself': True, 'message': u'Hi there', 'sender': u'foo@example.com', 'subject': u'hello'}
+
+.. note::
+    **New in Django development version** The ``cleaned_data`` attribute was
+    called ``clean_data`` in earlier releases.
+
+Note that any text-based field -- such as ``CharField`` or ``EmailField`` --
+always cleans the input into a Unicode string. We'll cover the encoding
+implications later in this document.
+
+If your data does *not* validate, your ``Form`` instance will not have a
+``cleaned_data`` attribute::
+
+    >>> data = {'subject': '',
+    ...         'message': 'Hi there',
+    ...         'sender': 'invalid e-mail address',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    False
+    >>> f.cleaned_data
+    Traceback (most recent call last):
+    ...
+    AttributeError: 'ContactForm' object has no attribute 'cleaned_data'
+
+``cleaned_data`` will always *only* contain a key for fields defined in the
+``Form``, even if you pass extra data when you define the ``Form``. In this
+example, we pass a bunch of extra fields to the ``ContactForm`` constructor,
+but ``cleaned_data`` contains only the form's fields::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True,
+    ...         'extra_field_1': 'foo',
+    ...         'extra_field_2': 'bar',
+    ...         'extra_field_3': 'baz'}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    True
+    >>> f.cleaned_data # Doesn't contain extra_field_1, etc.
+    {'cc_myself': True, 'message': u'Hi there', 'sender': u'foo@example.com', 'subject': u'hello'}
+
+``cleaned_data`` will include a key and value for *all* fields defined in the
+``Form``, even if the data didn't include a value for fields that are not
+required. In this example, the data dictionary doesn't include a value for the
+``nick_name`` field, but ``cleaned_data`` includes it, with an empty value::
+
+    >>> class OptionalPersonForm(Form):
+    ...     first_name = CharField()
+    ...     last_name = CharField()
+    ...     nick_name = CharField(required=False)
+    >>> data = {'first_name': u'John', 'last_name': u'Lennon'}
+    >>> f = OptionalPersonForm(data)
+    >>> f.is_valid()
+    True
+    >>> f.cleaned_data
+    {'nick_name': u'', 'first_name': u'John', 'last_name': u'Lennon'}
+
+In this above example, the ``cleaned_data`` value for ``nick_name`` is set to an
+empty string, because ``nick_name`` is ``CharField``, and ``CharField``\s treat
+empty values as an empty string. Each field type knows what its "blank" value
+is -- e.g., for ``DateField``, it's ``None`` instead of the empty string. For
+full details on each field's behavior in this case, see the "Empty value" note
+for each field in the "Built-in ``Field`` classes" section below.
+
+You can write code to perform validation for particular form fields (based on
+their name) or for the form as a whole (considering combinations of various
+fields). More information about this is in :ref:`ref-forms-validation`.
+
+Outputting forms as HTML
+------------------------
+
+The second task of a ``Form`` object is to render itself as HTML. To do so,
+simply ``print`` it::
+
+    >>> f = ContactForm()
+    >>> print f
+    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>
+    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>
+    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>
+
+If the form is bound to data, the HTML output will include that data
+appropriately. For example, if a field is represented by an
+``<input type="text">``, the data will be in the ``value`` attribute. If a
+field is represented by an ``<input type="checkbox">``, then that HTML will
+include ``checked="checked"`` if appropriate::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> print f
+    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" value="hello" /></td></tr>
+    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" value="Hi there" /></td></tr>
+    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" value="foo@example.com" /></td></tr>
+    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" checked="checked" /></td></tr>
+
+This default output is a two-column HTML table, with a ``<tr>`` for each field.
+Notice the following:
+
+    * For flexibility, the output does *not* include the ``<table>`` and
+      ``</table>`` tags, nor does it include the ``<form>`` and ``</form>``
+      tags or an ``<input type="submit">`` tag. It's your job to do that.
+
+    * Each field type has a default HTML representation. ``CharField`` and
+      ``EmailField`` are represented by an ``<input type="text">``.
+      ``BooleanField`` is represented by an ``<input type="checkbox">``. Note
+      these are merely sensible defaults; you can specify which HTML to use for
+      a given field by using widgets, which we'll explain shortly.
+
+    * The HTML ``name`` for each tag is taken directly from its attribute name
+      in the ``ContactForm`` class.
+
+    * The text label for each field -- e.g. ``'Subject:'``, ``'Message:'`` and
+      ``'Cc myself:'`` is generated from the field name by converting all
+      underscores to spaces and upper-casing the first letter. Again, note
+      these are merely sensible defaults; you can also specify labels manually.
+
+    * Each text label is surrounded in an HTML ``<label>`` tag, which points
+      to the appropriate form field via its ``id``. Its ``id``, in turn, is
+      generated by prepending ``'id_'`` to the field name. The ``id``
+      attributes and ``<label>`` tags are included in the output by default, to
+      follow best practices, but you can change that behavior.
+
+Although ``<table>`` output is the default output style when you ``print`` a
+form, other output styles are available. Each style is available as a method on
+a form object, and each rendering method returns a Unicode object.
+
+``as_p()``
+~~~~~~~~~~
+
+``Form.as_p()`` renders the form as a series of ``<p>`` tags, with each ``<p>``
+containing one field::
+
+    >>> f = ContactForm()
+    >>> f.as_p()
+    u'<p><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></p>\n<p><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></p>\n<p><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></p>\n<p><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>'
+    >>> print f.as_p()
+    <p><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></p>
+    <p><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></p>
+    <p><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></p>
+    <p><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>
+
+``as_ul()``
+~~~~~~~~~~~
+
+``Form.as_ul()`` renders the form as a series of ``<li>`` tags, with each
+``<li>`` containing one field. It does *not* include the ``<ul>`` or ``</ul>``,
+so that you can specify any HTML attributes on the ``<ul>`` for flexibility::
+
+    >>> f = ContactForm()
+    >>> f.as_ul()
+    u'<li><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></li>\n<li><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></li>\n<li><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></li>\n<li><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></li>'
+    >>> print f.as_ul()
+    <li><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></li>
+    <li><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></li>
+    <li><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></li>
+    <li><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></li>
+
+``as_table()``
+~~~~~~~~~~~~~~
+
+Finally, ``Form.as_table()`` outputs the form as an HTML ``<table>``. This is
+exactly the same as ``print``. In fact, when you ``print`` a form object, it
+calls its ``as_table()`` method behind the scenes::
+
+    >>> f = ContactForm()
+    >>> f.as_table()
+    u'<tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>\n<tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>\n<tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>\n<tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>'
+    >>> print f.as_table()
+    <tr><th><label for="id_subject">Subject:</label></th><td><input id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>
+    <tr><th><label for="id_sender">Sender:</label></th><td><input type="text" name="sender" id="id_sender" /></td></tr>
+    <tr><th><label for="id_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>
+
+.. _ref-forms-api-configuring-label:
+
+Configuring HTML ``<label>`` tags
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+An HTML ``<label>`` tag designates which label text is associated with which
+form element. This small enhancement makes forms more usable and more accessible
+to assistive devices. It's always a good idea to use ``<label>`` tags.
+
+By default, the form rendering methods include HTML ``id`` attributes on the
+form elements and corresponding ``<label>`` tags around the labels. The ``id``
+attribute values are generated by prepending ``id_`` to the form field names.
+This behavior is configurable, though, if you want to change the ``id``
+convention or remove HTML ``id`` attributes and ``<label>`` tags entirely.
+
+Use the ``auto_id`` argument to the ``Form`` constructor to control the label
+and ``id`` behavior. This argument must be ``True``, ``False`` or a string.
+
+If ``auto_id`` is ``False``, then the form output will not include ``<label>``
+tags nor ``id`` attributes::
+
+    >>> f = ContactForm(auto_id=False)
+    >>> print f.as_table()
+    <tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th>Message:</th><td><input type="text" name="message" /></td></tr>
+    <tr><th>Sender:</th><td><input type="text" name="sender" /></td></tr>
+    <tr><th>Cc myself:</th><td><input type="checkbox" name="cc_myself" /></td></tr>
+    >>> print f.as_ul()
+    <li>Subject: <input type="text" name="subject" maxlength="100" /></li>
+    <li>Message: <input type="text" name="message" /></li>
+    <li>Sender: <input type="text" name="sender" /></li>
+    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
+    >>> print f.as_p()
+    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
+    <p>Message: <input type="text" name="message" /></p>
+    <p>Sender: <input type="text" name="sender" /></p>
+    <p>Cc myself: <input type="checkbox" name="cc_myself" /></p>
+
+If ``auto_id`` is set to ``True``, then the form output *will* include
+``<label>`` tags and will simply use the field name as its ``id`` for each form
+field::
+
+    >>> f = ContactForm(auto_id=True)
+    >>> print f.as_table()
+    <tr><th><label for="subject">Subject:</label></th><td><input id="subject" type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th><label for="message">Message:</label></th><td><input type="text" name="message" id="message" /></td></tr>
+    <tr><th><label for="sender">Sender:</label></th><td><input type="text" name="sender" id="sender" /></td></tr>
+    <tr><th><label for="cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="cc_myself" /></td></tr>
+    >>> print f.as_ul()
+    <li><label for="subject">Subject:</label> <input id="subject" type="text" name="subject" maxlength="100" /></li>
+    <li><label for="message">Message:</label> <input type="text" name="message" id="message" /></li>
+    <li><label for="sender">Sender:</label> <input type="text" name="sender" id="sender" /></li>
+    <li><label for="cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="cc_myself" /></li>
+    >>> print f.as_p()
+    <p><label for="subject">Subject:</label> <input id="subject" type="text" name="subject" maxlength="100" /></p>
+    <p><label for="message">Message:</label> <input type="text" name="message" id="message" /></p>
+    <p><label for="sender">Sender:</label> <input type="text" name="sender" id="sender" /></p>
+    <p><label for="cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="cc_myself" /></p>
+
+If ``auto_id`` is set to a string containing the format character ``'%s'``,
+then the form output will include ``<label>`` tags, and will generate ``id``
+attributes based on the format string. For example, for a format string
+``'field_%s'``, a field named ``subject`` will get the ``id`` value
+``'field_subject'``. Continuing our example::
+
+    >>> f = ContactForm(auto_id='id_for_%s')
+    >>> print f.as_table()
+    <tr><th><label for="id_for_subject">Subject:</label></th><td><input id="id_for_subject" type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th><label for="id_for_message">Message:</label></th><td><input type="text" name="message" id="id_for_message" /></td></tr>
+    <tr><th><label for="id_for_sender">Sender:</label></th><td><input type="text" name="sender" id="id_for_sender" /></td></tr>
+    <tr><th><label for="id_for_cc_myself">Cc myself:</label></th><td><input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></td></tr>
+    >>> print f.as_ul()
+    <li><label for="id_for_subject">Subject:</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
+    <li><label for="id_for_message">Message:</label> <input type="text" name="message" id="id_for_message" /></li>
+    <li><label for="id_for_sender">Sender:</label> <input type="text" name="sender" id="id_for_sender" /></li>
+    <li><label for="id_for_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
+    >>> print f.as_p()
+    <p><label for="id_for_subject">Subject:</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></p>
+    <p><label for="id_for_message">Message:</label> <input type="text" name="message" id="id_for_message" /></p>
+    <p><label for="id_for_sender">Sender:</label> <input type="text" name="sender" id="id_for_sender" /></p>
+    <p><label for="id_for_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></p>
+
+If ``auto_id`` is set to any other true value -- such as a string that doesn't
+include ``%s`` -- then the library will act as if ``auto_id`` is ``True``.
+
+By default, ``auto_id`` is set to the string ``'id_%s'``.
+
+Normally, a colon (``:``) will be appended after any label name when a form is
+rendered. It's possible to change the colon to another character, or omit it
+entirely, using the ``label_suffix`` parameter::
+
+    >>> f = ContactForm(auto_id='id_for_%s', label_suffix='')
+    >>> print f.as_ul()
+    <li><label for="id_for_subject">Subject</label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
+    <li><label for="id_for_message">Message</label> <input type="text" name="message" id="id_for_message" /></li>
+    <li><label for="id_for_sender">Sender</label> <input type="text" name="sender" id="id_for_sender" /></li>
+    <li><label for="id_for_cc_myself">Cc myself</label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
+    >>> f = ContactForm(auto_id='id_for_%s', label_suffix=' ->')
+    >>> print f.as_ul()
+    <li><label for="id_for_subject">Subject -></label> <input id="id_for_subject" type="text" name="subject" maxlength="100" /></li>
+    <li><label for="id_for_message">Message -></label> <input type="text" name="message" id="id_for_message" /></li>
+    <li><label for="id_for_sender">Sender -></label> <input type="text" name="sender" id="id_for_sender" /></li>
+    <li><label for="id_for_cc_myself">Cc myself -></label> <input type="checkbox" name="cc_myself" id="id_for_cc_myself" /></li>
+
+Note that the label suffix is added only if the last character of the
+label isn't a punctuation character (``.``, ``!``, ``?`` or ``:``)
+
+Notes on field ordering
+~~~~~~~~~~~~~~~~~~~~~~~
+
+In the ``as_p()``, ``as_ul()`` and ``as_table()`` shortcuts, the fields are
+displayed in the order in which you define them in your form class. For
+example, in the ``ContactForm`` example, the fields are defined in the order
+``subject``, ``message``, ``sender``, ``cc_myself``. To reorder the HTML
+output, just change the order in which those fields are listed in the class.
+
+How errors are displayed
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you render a bound ``Form`` object, the act of rendering will automatically
+run the form's validation if it hasn't already happened, and the HTML output
+will include the validation errors as a ``<ul class="errorlist">`` near the
+field. The particular positioning of the error messages depends on the output
+method you're using::
+
+    >>> data = {'subject': '',
+    ...         'message': 'Hi there',
+    ...         'sender': 'invalid e-mail address',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data, auto_id=False)
+    >>> print f.as_table()
+    <tr><th>Subject:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="subject" maxlength="100" /></td></tr>
+    <tr><th>Message:</th><td><input type="text" name="message" value="Hi there" /></td></tr>
+    <tr><th>Sender:</th><td><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul><input type="text" name="sender" value="invalid e-mail address" /></td></tr>
+    <tr><th>Cc myself:</th><td><input checked="checked" type="checkbox" name="cc_myself" /></td></tr>
+    >>> print f.as_ul()
+    <li><ul class="errorlist"><li>This field is required.</li></ul>Subject: <input type="text" name="subject" maxlength="100" /></li>
+    <li>Message: <input type="text" name="message" value="Hi there" /></li>
+    <li><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul>Sender: <input type="text" name="sender" value="invalid e-mail address" /></li>
+    <li>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></li>
+    >>> print f.as_p()
+    <p><ul class="errorlist"><li>This field is required.</li></ul></p>
+    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
+    <p>Message: <input type="text" name="message" value="Hi there" /></p>
+    <p><ul class="errorlist"><li>Enter a valid e-mail address.</li></ul></p>
+    <p>Sender: <input type="text" name="sender" value="invalid e-mail address" /></p>
+    <p>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></p>
+
+Customizing the error list format
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+By default, forms use ``django.forms.util.ErrorList`` to format validation
+errors. If you'd like to use an alternate class for displaying errors, you can
+pass that in at construction time::
+
+    >>> from django.forms.util import ErrorList
+    >>> class DivErrorList(ErrorList):
+    ...     def __unicode__(self):
+    ...         return self.as_divs()
+    ...     def as_divs(self):
+    ...         if not self: return u''
+    ...         return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self])
+    >>> f = ContactForm(data, auto_id=False, error_class=DivErrorList)
+    >>> f.as_p()
+    <div class="errorlist"><div class="error">This field is required.</div></div>
+    <p>Subject: <input type="text" name="subject" maxlength="100" /></p>
+    <p>Message: <input type="text" name="message" value="Hi there" /></p>
+    <div class="errorlist"><div class="error">Enter a valid e-mail address.</div></div>
+    <p>Sender: <input type="text" name="sender" value="invalid e-mail address" /></p>
+    <p>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" /></p>
+
+More granular output
+~~~~~~~~~~~~~~~~~~~~
+
+The ``as_p()``, ``as_ul()`` and ``as_table()`` methods are simply shortcuts for
+lazy developers -- they're not the only way a form object can be displayed.
+
+To display the HTML for a single field in your form, use dictionary lookup
+syntax using the field's name as the key, and print the resulting object::
+
+    >>> f = ContactForm()
+    >>> print f['subject']
+    <input id="id_subject" type="text" name="subject" maxlength="100" />
+    >>> print f['message']
+    <input type="text" name="message" id="id_message" />
+    >>> print f['sender']
+    <input type="text" name="sender" id="id_sender" />
+    >>> print f['cc_myself']
+    <input type="checkbox" name="cc_myself" id="id_cc_myself" />
+
+Call ``str()`` or ``unicode()`` on the field to get its rendered HTML as a
+string or Unicode object, respectively::
+
+    >>> str(f['subject'])
+    '<input id="id_subject" type="text" name="subject" maxlength="100" />'
+    >>> unicode(f['subject'])
+    u'<input id="id_subject" type="text" name="subject" maxlength="100" />'
+
+The field-specific output honors the form object's ``auto_id`` setting::
+
+    >>> f = ContactForm(auto_id=False)
+    >>> print f['message']
+    <input type="text" name="message" />
+    >>> f = ContactForm(auto_id='id_%s')
+    >>> print f['message']
+    <input type="text" name="message" id="id_message" />
+
+For a field's list of errors, access the field's ``errors`` attribute. This
+is a list-like object that is displayed as an HTML ``<ul class="errorlist">``
+when printed::
+
+    >>> data = {'subject': 'hi', 'message': '', 'sender': '', 'cc_myself': ''}
+    >>> f = ContactForm(data, auto_id=False)
+    >>> print f['message']
+    <input type="text" name="message" />
+    >>> f['message'].errors
+    [u'This field is required.']
+    >>> print f['message'].errors
+    <ul class="errorlist"><li>This field is required.</li></ul>
+    >>> f['subject'].errors
+    []
+    >>> print f['subject'].errors
+
+    >>> str(f['subject'].errors)
+    ''
+
+.. _binding-uploaded-files:
+
+Binding uploaded files to a form
+--------------------------------
+
+**New in Django development version**
+
+Dealing with forms that have ``FileField`` and ``ImageField`` fields
+is a little more complicated than a normal form.
+
+Firstly, in order to upload files, you'll need to make sure that your
+``<form>`` element correctly defines the ``enctype`` as
+``"multipart/form-data"``::
+
+  <form enctype="multipart/form-data" method="post" action="/foo/">
+
+Secondly, when you use the form, you need to bind the file data. File
+data is handled separately to normal form data, so when your form
+contains a ``FileField`` and ``ImageField``, you will need to specify
+a second argument when you bind your form. So if we extend our
+ContactForm to include an ``ImageField`` called ``mugshot``, we
+need to bind the file data containing the mugshot image::
+
+    # Bound form with an image field
+    >>> from django.core.files.uploadedfile import SimpleUploadedFile
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': 'foo@example.com',
+    ...         'cc_myself': True}
+    >>> file_data = {'mugshot': SimpleUploadedFile('face.jpg', <file data>)}
+    >>> f = ContactFormWithMugshot(data, file_data)
+
+In practice, you will usually specify ``request.FILES`` as the source
+of file data (just like you use ``request.POST`` as the source of
+form data)::
+
+    # Bound form with an image field, data from the request
+    >>> f = ContactFormWithMugshot(request.POST, request.FILES)
+
+Constructing an unbound form is the same as always -- just omit both
+form data *and* file data::
+
+    # Unbound form with a image field
+    >>> f = ContactFormWithMugshot()
+
+Testing for multipart forms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you're writing reusable views or templates, you may not know ahead of time
+whether your form is a multipart form or not. The ``is_multipart()`` method
+tells you whether the form requires multipart encoding for submission::
+
+    >>> f = ContactFormWithMugshot()
+    >>> f.is_multipart()
+    True
+
+Here's an example of how you might use this in a template::
+
+    {% if form.is_multipart %}
+        <form enctype="multipart/form-data" method="post" action="/foo/">
+    {% else %}
+        <form method="post" action="/foo/">
+    {% endif %}
+    {{ form }}
+    </form>
+
+Subclassing forms
+-----------------
+
+If you have multiple ``Form`` classes that share fields, you can use
+subclassing to remove redundancy.
+
+When you subclass a custom ``Form`` class, the resulting subclass will
+include all fields of the parent class(es), followed by the fields you define
+in the subclass.
+
+In this example, ``ContactFormWithPriority`` contains all the fields from
+``ContactForm``, plus an additional field, ``priority``. The ``ContactForm``
+fields are ordered first::
+
+    >>> class ContactFormWithPriority(ContactForm):
+    ...     priority = forms.CharField()
+    >>> f = ContactFormWithPriority(auto_id=False)
+    >>> print f.as_ul()
+    <li>Subject: <input type="text" name="subject" maxlength="100" /></li>
+    <li>Message: <input type="text" name="message" /></li>
+    <li>Sender: <input type="text" name="sender" /></li>
+    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
+    <li>Priority: <input type="text" name="priority" /></li>
+
+It's possible to subclass multiple forms, treating forms as "mix-ins." In this
+example, ``BeatleForm`` subclasses both ``PersonForm`` and ``InstrumentForm``
+(in that order), and its field list includes the fields from the parent
+classes::
+
+    >>> class PersonForm(Form):
+    ...     first_name = CharField()
+    ...     last_name = CharField()
+    >>> class InstrumentForm(Form):
+    ...     instrument = CharField()
+    >>> class BeatleForm(PersonForm, InstrumentForm):
+    ...     haircut_type = CharField()
+    >>> b = BeatleForm(auto_id=False)
+    >>> print b.as_ul()
+    <li>First name: <input type="text" name="first_name" /></li>
+    <li>Last name: <input type="text" name="last_name" /></li>
+    <li>Instrument: <input type="text" name="instrument" /></li>
+    <li>Haircut type: <input type="text" name="haircut_type" /></li>
+
+.. _form-prefix:
+
+Prefixes for forms
+------------------
+
+.. attribute:: Form.prefix
+
+You can put several Django forms inside one ``<form>`` tag. To give each
+``Form`` its own namespace, use the ``prefix`` keyword argument::
+
+    >>> mother = PersonForm(prefix="mother")
+    >>> father = PersonForm(prefix="father")
+    >>> print mother.as_ul()
+    <li><label for="id_mother-first_name">First name:</label> <input type="text" name="mother-first_name" id="id_mother-first_name" /></li>
+    <li><label for="id_mother-last_name">Last name:</label> <input type="text" name="mother-last_name" id="id_mother-last_name" /></li>
+    >>> print father.as_ul()
+    <li><label for="id_father-first_name">First name:</label> <input type="text" name="father-first_name" id="id_father-first_name" /></li>
+    <li><label for="id_father-last_name">Last name:</label> <input type="text" name="father-last_name" id="id_father-last_name" /></li>
diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt
new file mode 100644
index 0000000000..161c550d37
--- /dev/null
+++ b/docs/ref/forms/fields.txt
@@ -0,0 +1,751 @@
+.. _ref-forms-fields:
+
+===========
+Form fields
+===========
+
+.. module:: django.forms.fields
+   :synopsis: Django's built-in form fields.
+
+.. currentmodule:: django.forms
+
+.. class:: Field(**kwargs)
+
+When you create a ``Form`` class, the most important part is defining the
+fields of the form. Each field has custom validation logic, along with a few
+other hooks.
+
+.. method:: Field.clean(value)
+
+Although the primary way you'll use ``Field`` classes is in ``Form`` classes,
+you can also instantiate them and use them directly to get a better idea of
+how they work. Each ``Field`` instance has a ``clean()`` method, which takes
+a single argument and either raises a ``django.forms.ValidationError``
+exception or returns the clean value::
+
+    >>> f = forms.EmailField()
+    >>> f.clean('foo@example.com')
+    u'foo@example.com'
+    >>> f.clean(u'foo@example.com')
+    u'foo@example.com'
+    >>> f.clean('invalid e-mail address')
+    Traceback (most recent call last):
+    ...
+    ValidationError: [u'Enter a valid e-mail address.']
+
+If you've used Django's old forms/validation framework, take care in noticing
+this ``ValidationError`` is different than the previous ``ValidationError``.
+This one lives at ``django.forms.ValidationError`` rather than
+``django.core.validators.ValidationError``.
+
+Core field arguments
+--------------------
+
+Each ``Field`` class constructor takes at least these arguments. Some
+``Field`` classes take additional, field-specific arguments, but the following
+should *always* be accepted:
+
+``required``
+~~~~~~~~~~~~
+
+.. attribute:: Field.required
+
+By default, each ``Field`` class assumes the value is required, so if you pass
+an empty value -- either ``None`` or the empty string (``""``) -- then
+``clean()`` will raise a ``ValidationError`` exception::
+
+    >>> f = forms.CharField()
+    >>> f.clean('foo')
+    u'foo'
+    >>> f.clean('')
+    Traceback (most recent call last):
+    ...
+    ValidationError: [u'This field is required.']
+    >>> f.clean(None)
+    Traceback (most recent call last):
+    ...
+    ValidationError: [u'This field is required.']
+    >>> f.clean(' ')
+    u' '
+    >>> f.clean(0)
+    u'0'
+    >>> f.clean(True)
+    u'True'
+    >>> f.clean(False)
+    u'False'
+
+To specify that a field is *not* required, pass ``required=False`` to the
+``Field`` constructor::
+
+    >>> f = forms.CharField(required=False)
+    >>> f.clean('foo')
+    u'foo'
+    >>> f.clean('')
+    u''
+    >>> f.clean(None)
+    u''
+    >>> f.clean(0)
+    u'0'
+    >>> f.clean(True)
+    u'True'
+    >>> f.clean(False)
+    u'False'
+
+If a ``Field`` has ``required=False`` and you pass ``clean()`` an empty value,
+then ``clean()`` will return a *normalized* empty value rather than raising
+``ValidationError``. For ``CharField``, this will be a Unicode empty string.
+For other ``Field`` classes, it might be ``None``. (This varies from field to
+field.)
+
+``label``
+~~~~~~~~~
+
+.. attribute:: Field.label
+
+The ``label`` argument lets you specify the "human-friendly" label for this
+field. This is used when the ``Field`` is displayed in a ``Form``.
+
+As explained in "Outputting forms as HTML" above, the default label for a
+``Field`` is generated from the field name by converting all underscores to
+spaces and upper-casing the first letter. Specify ``label`` if that default
+behavior doesn't result in an adequate label.
+
+Here's a full example ``Form`` that implements ``label`` for two of its fields.
+We've specified ``auto_id=False`` to simplify the output::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField(label='Your name')
+    ...     url = forms.URLField(label='Your Web site', required=False)
+    ...     comment = forms.CharField()
+    >>> f = CommentForm(auto_id=False)
+    >>> print f
+    <tr><th>Your name:</th><td><input type="text" name="name" /></td></tr>
+    <tr><th>Your Web site:</th><td><input type="text" name="url" /></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+
+``initial``
+~~~~~~~~~~~
+
+.. attribute:: Field.initial
+
+The ``initial`` argument lets you specify the initial value to use when
+rendering this ``Field`` in an unbound ``Form``.
+
+The use-case for this is when you want to display an "empty" form in which a
+field is initialized to a particular value. For example::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField(initial='Your name')
+    ...     url = forms.URLField(initial='http://')
+    ...     comment = forms.CharField()
+    >>> f = CommentForm(auto_id=False)
+    >>> print f
+    <tr><th>Name:</th><td><input type="text" name="name" value="Your name" /></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url" value="http://" /></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+
+You may be thinking, why not just pass a dictionary of the initial values as
+data when displaying the form? Well, if you do that, you'll trigger validation,
+and the HTML output will include any validation errors::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField()
+    ...     url = forms.URLField()
+    ...     comment = forms.CharField()
+    >>> default_data = {'name': 'Your name', 'url': 'http://'}
+    >>> f = CommentForm(default_data, auto_id=False)
+    >>> print f
+    <tr><th>Name:</th><td><input type="text" name="name" value="Your name" /></td></tr>
+    <tr><th>Url:</th><td><ul class="errorlist"><li>Enter a valid URL.</li></ul><input type="text" name="url" value="http://" /></td></tr>
+    <tr><th>Comment:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="comment" /></td></tr>
+
+This is why ``initial`` values are only displayed for unbound forms. For bound
+forms, the HTML output will use the bound data.
+
+Also note that ``initial`` values are *not* used as "fallback" data in
+validation if a particular field's value is not given. ``initial`` values are
+*only* intended for initial form display::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField(initial='Your name')
+    ...     url = forms.URLField(initial='http://')
+    ...     comment = forms.CharField()
+    >>> data = {'name': '', 'url': '', 'comment': 'Foo'}
+    >>> f = CommentForm(data)
+    >>> f.is_valid()
+    False
+    # The form does *not* fall back to using the initial values.
+    >>> f.errors
+    {'url': [u'This field is required.'], 'name': [u'This field is required.']}
+
+``widget``
+~~~~~~~~~~
+
+.. attribute:: Field.widget
+
+The ``widget`` argument lets you specify a ``Widget`` class to use when
+rendering this ``Field``. See :ref:`ref-forms-widgets` for more information.
+
+``help_text``
+~~~~~~~~~~~~~
+
+.. attribute:: Field.help_text
+
+The ``help_text`` argument lets you specify descriptive text for this
+``Field``. If you provide ``help_text``, it will be displayed next to the
+``Field`` when the ``Field`` is rendered by one of the convenience ``Form``
+methods (e.g., ``as_ul()``).
+
+Here's a full example ``Form`` that implements ``help_text`` for two of its
+fields. We've specified ``auto_id=False`` to simplify the output::
+
+    >>> class HelpTextContactForm(forms.Form):
+    ...     subject = forms.CharField(max_length=100, help_text='100 characters max.')
+    ...     message = forms.CharField()
+    ...     sender = forms.EmailField(help_text='A valid e-mail address, please.')
+    ...     cc_myself = forms.BooleanField(required=False)
+    >>> f = HelpTextContactForm(auto_id=False)
+    >>> print f.as_table()
+    <tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" /><br />100 characters max.</td></tr>
+    <tr><th>Message:</th><td><input type="text" name="message" /></td></tr>
+    <tr><th>Sender:</th><td><input type="text" name="sender" /><br />A valid e-mail address, please.</td></tr>
+    <tr><th>Cc myself:</th><td><input type="checkbox" name="cc_myself" /></td></tr>
+    >>> print f.as_ul()
+    <li>Subject: <input type="text" name="subject" maxlength="100" /> 100 characters max.</li>
+    <li>Message: <input type="text" name="message" /></li>
+    <li>Sender: <input type="text" name="sender" /> A valid e-mail address, please.</li>
+    <li>Cc myself: <input type="checkbox" name="cc_myself" /></li>
+    >>> print f.as_p()
+    <p>Subject: <input type="text" name="subject" maxlength="100" /> 100 characters max.</p>
+    <p>Message: <input type="text" name="message" /></p>
+    <p>Sender: <input type="text" name="sender" /> A valid e-mail address, please.</p>
+    <p>Cc myself: <input type="checkbox" name="cc_myself" /></p>
+
+``error_messages``
+~~~~~~~~~~~~~~~~~~
+
+.. attribute:: Field.error_messages
+
+**New in Django development version**
+
+The ``error_messages`` argument lets you override the default messages that the
+field will raise. Pass in a dictionary with keys matching the error messages you
+want to override. For example, here is the default error message::
+
+    >>> generic = forms.CharField()
+    >>> generic.clean('')
+    Traceback (most recent call last):
+      ...
+    ValidationError: [u'This field is required.']
+
+And here is a custom error message::
+
+    >>> name = forms.CharField(error_messages={'required': 'Please enter your name'})
+    >>> name.clean('')
+    Traceback (most recent call last):
+      ...
+    ValidationError: [u'Please enter your name']
+
+In the `built-in Field classes`_ section below, each ``Field`` defines the
+error message keys it uses.
+
+Dynamic initial values
+----------------------
+
+The ``initial`` argument to ``Field`` (explained above) lets you hard-code the
+initial value for a ``Field`` -- but what if you want to declare the initial
+value at runtime? For example, you might want to fill in a ``username`` field
+with the username of the current session.
+
+To accomplish this, use the ``initial`` argument to a ``Form``. This argument,
+if given, should be a dictionary mapping field names to initial values. Only
+include the fields for which you're specifying an initial value; it's not
+necessary to include every field in your form. For example::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField()
+    ...     url = forms.URLField()
+    ...     comment = forms.CharField()
+    >>> f = CommentForm(initial={'name': 'your username'}, auto_id=False)
+    >>> print f
+    <tr><th>Name:</th><td><input type="text" name="name" value="your username" /></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+    >>> f = CommentForm(initial={'name': 'another username'}, auto_id=False)
+    >>> print f
+    <tr><th>Name:</th><td><input type="text" name="name" value="another username" /></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+
+Just like the ``initial`` parameter to ``Field``, these values are only
+displayed for unbound forms, and they're not used as fallback values if a
+particular value isn't provided.
+
+Finally, note that if a ``Field`` defines ``initial`` *and* you include
+``initial`` when instantiating the ``Form``, then the latter ``initial`` will
+have precedence. In this example, ``initial`` is provided both at the field
+level and at the form instance level, and the latter gets precedence::
+
+    >>> class CommentForm(forms.Form):
+    ...     name = forms.CharField(initial='class')
+    ...     url = forms.URLField()
+    ...     comment = forms.CharField()
+    >>> f = CommentForm(initial={'name': 'instance'}, auto_id=False)
+    >>> print f
+    <tr><th>Name:</th><td><input type="text" name="name" value="instance" /></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url" /></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+
+
+Built-in ``Field`` classes
+--------------------------
+
+Naturally, the ``forms`` library comes with a set of ``Field`` classes that
+represent common validation needs. This section documents each built-in field.
+
+For each field, we describe the default widget used if you don't specify
+``widget``. We also specify the value returned when you provide an empty value
+(see the section on ``required`` above to understand what that means).
+
+``BooleanField``
+~~~~~~~~~~~~~~~~
+
+.. class:: BooleanField(**kwargs)
+
+    * Default widget: ``CheckboxInput``
+    * Empty value: ``False``
+    * Normalizes to: A Python ``True`` or ``False`` value.
+    * Validates that the check box is checked (i.e. the value is ``True``) if
+      the field has ``required=True``.
+    * Error message keys: ``required``
+
+**New in Django development version:** The empty value for a ``CheckboxInput``
+(and hence the standard ``BooleanField``) has changed to return ``False``
+instead of ``None`` in the development version.
+
+.. note::
+    Since all ``Field`` subclasses have ``required=True`` by default, the
+    validation condition here is important. If you want to include a checkbox
+    in your form that can be either checked or unchecked, you must remember to
+    pass in ``required=False`` when creating the ``BooleanField``.
+
+``CharField``
+~~~~~~~~~~~~~
+
+.. class:: CharField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates ``max_length`` or ``min_length``, if they are provided.
+      Otherwise, all inputs are valid.
+    * Error message keys: ``required``, ``max_length``, ``min_length``
+
+Has two optional arguments for validation:
+
+.. attribute:: CharField.max_length
+.. attribute:: CharField.min_length
+    If provided, these arguments ensure that the string is at most or at least
+    the given length.
+
+``ChoiceField``
+~~~~~~~~~~~~~~~
+
+.. class:: ChoiceField(**kwargs)
+
+    * Default widget: ``Select``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates that the given value exists in the list of choices.
+    * Error message keys: ``required``, ``invalid_choice``
+
+Takes one extra required argument:
+
+.. attribute:: ChoiceField.choices
+    An iterable (e.g., a list or tuple) of 2-tuples to use as choices for this
+    field.
+
+``DateField``
+~~~~~~~~~~~~~
+
+.. class:: DateField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``None``
+    * Normalizes to: A Python ``datetime.date`` object.
+    * Validates that the given value is either a ``datetime.date``,
+      ``datetime.datetime`` or string formatted in a particular date format.
+    * Error message keys: ``required``, ``invalid``
+
+Takes one optional argument:
+
+.. attribute:: DateField.input_formats
+    A list of formats used to attempt to convert a string to a valid
+    ``datetime.date`` object.
+
+If no ``input_formats`` argument is provided, the default input formats are::
+
+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
+
+``DateTimeField``
+~~~~~~~~~~~~~~~~~
+
+.. class:: DateTimeField(**kwargs)
+
+    * Default widget: ``DateTimeInput``
+    * Empty value: ``None``
+    * Normalizes to: A Python ``datetime.datetime`` object.
+    * Validates that the given value is either a ``datetime.datetime``,
+      ``datetime.date`` or string formatted in a particular datetime format.
+    * Error message keys: ``required``, ``invalid``
+
+Takes one optional argument:
+
+.. attribute:: DateTimeField.input_formats
+    A list of formats used to attempt to convert a string to a valid
+    ``datetime.datetime`` object.
+
+If no ``input_formats`` argument is provided, the default input formats are::
+
+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
+    '%Y-%m-%d',              # '2006-10-25'
+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
+    '%m/%d/%Y',              # '10/25/2006'
+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
+    '%m/%d/%y',              # '10/25/06'
+
+**New in Django development version:** The ``DateTimeField`` used to use a
+``TextInput`` widget by default. This has now changed.
+
+``DecimalField``
+~~~~~~~~~~~~~~~~
+
+.. class:: DecimalField(**kwargs)
+
+**New in Django development version**
+
+    * Default widget: ``TextInput``
+    * Empty value: ``None``
+    * Normalizes to: A Python ``decimal``.
+    * Validates that the given value is a decimal. Leading and trailing
+      whitespace is ignored.
+    * Error message keys: ``required``, ``invalid``, ``max_value``,
+      ``min_value``, ``max_digits``, ``max_decimal_places``,
+      ``max_whole_digits``
+
+Takes four optional arguments: 
+
+.. attribute:: DecimalField.max_value
+.. attribute:: DecimalField.min_value
+    These attributes define the limits for the fields value.
+
+.. attribute:: DecimalField.max_digits
+    The maximum number of digits (those before the decimal point plus those
+    after the decimal point, with leading zeros stripped) permitted in the
+    value.
+    
+.. attribute:: DecimalField.decimal_places
+    The maximum number of decimal places permitted.
+
+``EmailField``
+~~~~~~~~~~~~~~
+
+.. class:: EmailField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates that the given value is a valid e-mail address, using a
+      moderately complex regular expression.
+    * Error message keys: ``required``, ``invalid``
+
+Has two optional arguments for validation, ``max_length`` and ``min_length``.
+If provided, these arguments ensure that the string is at most or at least the
+given length.
+
+``FileField``
+~~~~~~~~~~~~~
+
+.. class:: FileField(**kwargs)
+
+**New in Django development version**
+
+    * Default widget: ``FileInput``
+    * Empty value: ``None``
+    * Normalizes to: An ``UploadedFile`` object that wraps the file content
+      and file name into a single object.
+    * Validates that non-empty file data has been bound to the form.
+    * Error message keys: ``required``, ``invalid``, ``missing``, ``empty``
+
+To learn more about the ``UploadedFile`` object, see the :ref:`file uploads
+documentation <topics-file-uploads>`.
+
+When you use a ``FileField`` in a form, you must also remember to
+:ref:`bind the file data to the form <topics-file-uploads>`.
+
+``FilePathField``
+~~~~~~~~~~~~~~~~~
+
+.. class:: FilePathField(**kwargs)
+
+**New in Django development version**
+
+    * Default widget: ``Select``
+    * Empty value: ``None``
+    * Normalizes to: A unicode object
+    * Validates that the selected choice exists in the list of choices.
+    * Error message keys: ``required``, ``invalid_choice``
+
+The field allows choosing from files inside a certain directory. It takes three
+extra arguments; only ``path`` is required:
+
+.. attribute:: FilePathField.path
+    The absolute path to the directory whose contents you want listed. This
+    directory must exist.
+
+.. attribute:: FilePathField.recursive
+    If ``False`` (the default) only the direct contents of ``path`` will be
+    offered as choices. If ``True``, the directory will be descended into
+    recursively and all descendants will be listed as choices.
+
+.. attribute:: FilePathField.match
+    A regular expression pattern; only files with names matching this expression
+    will be allowed as choices.
+
+``FloatField`` 
+~~~~~~~~~~~~~~ 
+
+    * Default widget: ``TextInput`` 
+    * Empty value: ``None`` 
+    * Normalizes to: A Python float. 
+    * Validates that the given value is an float. Leading and trailing 
+      whitespace is allowed, as in Python's ``float()`` function. 
+    * Error message keys: ``required``, ``invalid``, ``max_value``, 
+      ``min_value`` 
+	 
+Takes two optional arguments for validation, ``max_value`` and ``min_value``. 
+These control the range of values permitted in the field.
+
+``ImageField``
+~~~~~~~~~~~~~~
+
+.. class:: ImageField(**kwargs)
+
+**New in Django development version**
+
+    * Default widget: ``FileInput``
+    * Empty value: ``None``
+    * Normalizes to: An ``UploadedFile`` object that wraps the file content
+      and file name into a single object.
+    * Validates that file data has been bound to the form, and that the
+      file is of an image format understood by PIL.
+    * Error message keys: ``required``, ``invalid``, ``missing``, ``empty``,
+      ``invalid_image``
+
+Using an ImageField requires that the `Python Imaging Library`_ is installed.
+
+When you use an ``ImageField`` on a form, you must also remember to
+:ref:`bind the file data to the form <topics-file-uploads>`.
+
+.. _Python Imaging Library: http://www.pythonware.com/products/pil/
+
+``IntegerField``
+~~~~~~~~~~~~~~~~
+
+.. class:: IntegerField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``None``
+    * Normalizes to: A Python integer or long integer.
+    * Validates that the given value is an integer. Leading and trailing
+      whitespace is allowed, as in Python's ``int()`` function.
+    * Error message keys: ``required``, ``invalid``, ``max_value``,
+      ``min_value``
+
+Takes two optional arguments for validation:
+
+.. attribute:: IntegerField.max_value
+.. attribute:: IntegerField.min_value
+    These control the range of values permitted in the field.
+
+``IPAddressField``
+~~~~~~~~~~~~~~~~~~
+
+.. class:: IPAddressField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates that the given value is a valid IPv4 address, using a regular
+      expression.
+    * Error message keys: ``required``, ``invalid``
+
+``MultipleChoiceField``
+~~~~~~~~~~~~~~~~~~~~~~~
+
+.. class:: MultipleChoiceField(**kwargs)
+
+    * Default widget: ``SelectMultiple``
+    * Empty value: ``[]`` (an empty list)
+    * Normalizes to: A list of Unicode objects.
+    * Validates that every value in the given list of values exists in the list
+      of choices.
+    * Error message keys: ``required``, ``invalid_choice``, ``invalid_list``
+
+Takes one extra argument, ``choices``, as for ``ChoiceField``.
+
+``NullBooleanField``
+~~~~~~~~~~~~~~~~~~~~
+
+.. class:: NullBooleanField(**kwargs)
+
+    * Default widget: ``NullBooleanSelect``
+    * Empty value: ``None``
+    * Normalizes to: A Python ``True``, ``False`` or ``None`` value.
+    * Validates nothing (i.e., it never raises a ``ValidationError``).
+
+``RegexField``
+~~~~~~~~~~~~~~
+
+.. class:: RegexField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates that the given value matches against a certain regular
+      expression.
+    * Error message keys: ``required``, ``invalid``
+
+Takes one required argument:
+
+.. attribute:: RegexField.regex``
+    A regular expression specified either as a string or a compiled regular
+    expression object.
+
+Also takes ``max_length`` and ``min_length``, which work just as they do for
+``CharField``.
+
+The optional argument ``error_message`` is also accepted for backwards
+compatibility. The preferred way to provide an error message is to use the
+``error_messages`` argument, passing a dictionary with ``'invalid'`` as a key
+and the error message as the value.
+
+``TimeField``
+~~~~~~~~~~~~~
+
+.. class:: TimeField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``None``
+    * Normalizes to: A Python ``datetime.time`` object.
+    * Validates that the given value is either a ``datetime.time`` or string
+      formatted in a particular time format.
+    * Error message keys: ``required``, ``invalid``
+
+Takes one optional argument:
+
+.. attribute:: TimeField.input_formats
+    A list of formats used to attempt to convert a string to a valid
+    ``datetime.time`` object.
+
+If no ``input_formats`` argument is provided, the default input formats are::
+
+    '%H:%M:%S',     # '14:30:59'
+    '%H:%M',        # '14:30'
+
+``URLField``
+~~~~~~~~~~~~
+
+.. class:: URLField(**kwargs)
+
+    * Default widget: ``TextInput``
+    * Empty value: ``''`` (an empty string)
+    * Normalizes to: A Unicode object.
+    * Validates that the given value is a valid URL.
+    * Error message keys: ``required``, ``invalid``, ``invalid_link``
+
+Takes the following optional arguments:
+
+
+.. attribute:: URLField.max_length
+.. attribute:: URLField.min_length
+    Same as ``CharField.max_length`` and ``CharField.min_length``.
+
+.. attribute:: URLField.verify_exists
+    If ``True``, the validator will attempt to load the given URL, raising
+    ``ValidationError`` if the page gives a 404. Defaults to ``False``.
+
+.. attribute:: URLField.validator_user_agent
+    String used as the user-agent used when checking for a URL's existence.
+    Defaults to the value of the ``URL_VALIDATOR_USER_AGENT`` setting.
+
+Slightly complex built-in ``Field`` classes
+-------------------------------------------
+
+The following are not yet documented.
+
+.. class:: ComboField(**kwargs)
+
+.. class:: MultiValueField(**kwargs)
+
+.. class:: SplitDateTimeField(**kwargs)
+
+Fields which handle relationships
+---------------------------------
+
+For representing relationships between models, two fields are
+provided which can derive their choices from a ``QuerySet``:
+
+.. class:: ModelChoiceField(**kwargs)
+.. class:: ModelMultipleChoiceField(**kwargs)
+
+These fields place one or more model objects into the ``cleaned_data``
+dictionary of forms in which they're used. Both of these fields have an
+additional required argument:
+
+.. attribute:: ModelChoiceField.queryset
+    A ``QuerySet`` of model objects from which the choices for the
+    field will be derived, and which will be used to validate the
+    user's selection.
+
+``ModelChoiceField``
+~~~~~~~~~~~~~~~~~~~~
+
+Allows the selection of a single model object, suitable for
+representing a foreign key.
+
+The ``__unicode__`` method of the model will be called to generate
+string representations of the objects for use in the field's choices;
+to provide customized representations, subclass ``ModelChoiceField``
+and override ``label_from_instance``. This method will receive a model
+object, and should return a string suitable for representing it. For
+example::
+
+    class MyModelChoiceField(ModelChoiceField):
+        def label_from_instance(self, obj):
+            return "My Object #%i" % obj.id
+
+``ModelMultipleChoiceField``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Allows the selection of one or more model objects, suitable for
+representing a many-to-many relation. As with ``ModelChoiceField``,
+you can use ``label_from_instance`` to customize the object
+representations.
+
+Creating custom fields
+----------------------
+
+If the built-in ``Field`` classes don't meet your needs, you can easily create
+custom ``Field`` classes. To do this, just create a subclass of
+``django.forms.Field``. Its only requirements are that it implement a
+``clean()`` method and that its ``__init__()`` method accept the core arguments
+mentioned above (``required``, ``label``, ``initial``, ``widget``,
+``help_text``).
diff --git a/docs/ref/forms/index.txt b/docs/ref/forms/index.txt
new file mode 100644
index 0000000000..a9e041c2a7
--- /dev/null
+++ b/docs/ref/forms/index.txt
@@ -0,0 +1,14 @@
+.. _ref-forms-index:
+
+Forms
+=====
+
+Detailed form API reference. For introductory material, see :ref:`topics-forms-index`.
+
+.. toctree::
+   :maxdepth: 1
+   
+   api
+   fields
+   widgets
+   validation
\ No newline at end of file
diff --git a/docs/ref/forms/validation.txt b/docs/ref/forms/validation.txt
new file mode 100644
index 0000000000..56c0e098c3
--- /dev/null
+++ b/docs/ref/forms/validation.txt
@@ -0,0 +1,109 @@
+.. _ref-forms-validation:
+
+F and field validation
+======================
+
+Form validation happens when the data is cleaned. If you want to customize
+this process, there are various places you can change, each one serving a
+different purpose. Three types of cleaning methods are run during form
+processing. These are normally executed when you call the ``is_valid()``
+method on a form. There are other things that can trigger cleaning and
+validation (accessing the ``errors`` attribute or calling ``full_clean()``
+directly), but normally they won't be needed.
+
+In general, any cleaning method can raise ``ValidationError`` if there is a
+problem with the data it is processing, passing the relevant error message to
+the ``ValidationError`` constructor. If no ``ValidationError`` is raised, the
+method should return the cleaned (normalized) data as a Python object.
+
+If you detect multiple errors during a cleaning method and wish to signal all
+of them to the form submitter, it is possible to pass a list of errors to the
+``ValidationError`` constructor.
+
+The three types of cleaning methods are:
+
+    * The ``clean()`` method on a Field subclass. This is responsible
+      for cleaning the data in a way that is generic for that type of field.
+      For example, a FloatField will turn the data into a Python ``float`` or
+      raise a ``ValidationError``.
+
+    * The ``clean_<fieldname>()`` method in a form subclass -- where
+      ``<fieldname>`` is replaced with the name of the form field attribute.
+      This method does any cleaning that is specific to that particular
+      attribute, unrelated to the type of field that it is. This method is not
+      passed any parameters. You will need to look up the value of the field
+      in ``self.cleaned_data`` and remember that it will be a Python object
+      at this point, not the original string submitted in the form (it will be
+      in ``cleaned_data`` because the general field ``clean()`` method, above,
+      has already cleaned the data once).
+
+      For example, if you wanted to validate that the contents of a
+      ``CharField`` called ``serialnumber`` was unique,
+      ``clean_serialnumber()`` would be the right place to do this. You don't
+      need a specific field (it's just a ``CharField``), but you want a
+      formfield-specific piece of validation and, possibly,
+      cleaning/normalizing the data.
+
+    * The Form subclass's ``clean()`` method. This method can perform
+      any validation that requires access to multiple fields from the form at
+      once. This is where you might put in things to check that if field ``A``
+      is supplied, field ``B`` must contain a valid e-mail address and the
+      like. The data that this method returns is the final ``cleaned_data``
+      attribute for the form, so don't forget to return the full list of
+      cleaned data if you override this method (by default, ``Form.clean()``
+      just returns ``self.cleaned_data``).
+
+      Note that any errors raised by your ``Form.clean()`` override will not
+      be associated with any field in particular. They go into a special
+      "field" (called ``__all__``), which you can access via the
+      ``non_field_errors()`` method if you need to.
+
+These methods are run in the order given above, one field at a time.  That is,
+for each field in the form (in the order they are declared in the form
+definition), the ``Field.clean()`` method (or its override) is run, then
+``clean_<fieldname>()``. Finally, once those two methods are run for every
+field, the ``Form.clean()`` method, or its override, is executed.
+
+As mentioned above, any of these methods can raise a ``ValidationError``. For
+any field, if the ``Field.clean()`` method raises a ``ValidationError``, any
+field-specific cleaning method is not called. However, the cleaning methods
+for all remaining fields are still executed.
+
+The ``clean()`` method for the ``Form`` class or subclass is always run. If
+that method raises a ``ValidationError``, ``cleaned_data`` will be an empty
+dictionary.
+
+The previous paragraph means that if you are overriding ``Form.clean()``, you
+should iterate through ``self.cleaned_data.items()``, possibly considering the
+``_errors`` dictionary attribute on the form as well. In this way, you will
+already know which fields have passed their individual validation requirements.
+
+A simple example
+~~~~~~~~~~~~~~~~
+
+Here's a simple example of a custom field that validates its input is a string
+containing comma-separated e-mail addresses, with at least one address. We'll
+keep it simple and assume e-mail validation is contained in a function called
+``is_valid_email()``. The full class::
+
+    from django import forms
+
+    class MultiEmailField(forms.Field):
+        def clean(self, value):
+            if not value:
+                raise forms.ValidationError('Enter at least one e-mail address.')
+            emails = value.split(',')
+            for email in emails:
+                if not is_valid_email(email):
+                    raise forms.ValidationError('%s is not a valid e-mail address.' % email)
+            return emails
+
+Let's alter the ongoing ``ContactForm`` example to demonstrate how you'd use
+this in a form. Simply use ``MultiEmailField`` instead of ``forms.EmailField``,
+like so::
+
+    class ContactForm(forms.Form):
+        subject = forms.CharField(max_length=100)
+        message = forms.CharField()
+        senders = MultiEmailField()
+        cc_myself = forms.BooleanField(required=False)
diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt
new file mode 100644
index 0000000000..184515ec95
--- /dev/null
+++ b/docs/ref/forms/widgets.txt
@@ -0,0 +1,156 @@
+.. _ref-forms-widgets:
+
+=======
+Widgets
+=======
+
+.. module:: django.forms.widgets
+   :synopsis: Django's built-in form widgets.
+   
+.. currentmodule:: django.forms
+
+A widget is Django's representation of a HTML input element. The widget
+handles the rendering of the HTML, and the extraction of data from a GET/POST
+dictionary that corresponds to the widget.
+
+Django provides a representation of all the basic HTML widgets, plus some
+commonly used groups of widgets:
+
+.. class:: TextInput
+    Text input: ``<input type='text' ...>``
+
+.. class:: PasswordInput
+    Password input: ``<input type='password' ...>``
+
+.. class:: HiddenInput
+    Hidden input: ``<input type='hidden' ...>``
+
+.. class:: MultipleHiddenInput
+    Multiple ``<input type='hidden' ...>`` widgets.
+
+.. class:: FileInput
+    File upload input: ``<input type='file' ...>``
+
+.. class:: DateTimeInput
+    Date/time input as a simple text box: ``<input type='text' ...>``
+
+    **New in Django development version:**
+
+.. class:: Textarea
+    Text area: ``<textarea>...</textarea>``
+
+.. class:: CheckboxInput
+    Checkbox: ``<input type='checkbox' ...>``
+
+.. class:: Select
+    Select widget: ``<select><option ...>...</select>``
+
+.. class:: NullBooleanSelect
+    Select widget with options 'Unknown', 'Yes' and 'No'
+
+.. class:: SelectMultiple
+    Select widget allowing multiple selection: ``<select
+    multiple='multiple'>...</select>``
+
+.. class:: RadioSelect
+    A list of radio buttons:
+    
+    .. code-block:: html
+    
+        <ul>
+          <li><input type='radio' ...></li>
+          ...
+        </ul>
+
+.. class:: CheckboxSelectMultiple
+    A list of checkboxes:
+    
+    .. code-block:: html
+    
+        <ul>
+          <li><input type='checkbox' ...></li>
+          ...
+        </ul>
+
+.. class:: MultiWidget
+    Wrapper around multiple other widgets
+
+.. class:: SplitDateTimeWidget
+    Wrapper around two ``TextInput`` widgets: one for the date, and one for the
+    time.
+
+Specifying widgets
+------------------
+
+.. attribute:: Form.widget
+
+Whenever you specify a field on a form, Django will use a default widget
+that is appropriate to the type of data that is to be displayed. To find
+which widget is used on which field, see the documentation for the
+built-in Field classes.
+
+However, if you want to use a different widget for a field, you can -
+just use the 'widget' argument on the field definition. For example::
+
+    class CommentForm(forms.Form):
+        name = forms.CharField()
+        url = forms.URLField()
+        comment = forms.CharField(widget=forms.Textarea)
+
+This would specify a form with a comment that uses a larger Textarea widget,
+rather than the default TextInput widget.
+
+Customizing widget instances
+----------------------------
+
+When Django renders a widget as HTML, it only renders the bare minimum
+HTML - Django doesn't add a class definition, or any other widget-specific
+attributes. This means that all 'TextInput' widgets will appear the same
+on your web page.
+
+If you want to make one widget look different to another, you need to
+specify additional attributes for each widget. When you specify a
+widget, you can provide a list of attributes that will be added to the
+rendered HTML for the widget.
+
+For example, take the following simple form::
+
+    class CommentForm(forms.Form):
+        name = forms.CharField()
+        url = forms.URLField()
+        comment = forms.CharField()
+
+This form will include three default TextInput widgets, with default rendering -
+no CSS class, no extra attributes. This means that the input boxes provided for
+each widget will be rendered exactly the same::
+
+    >>> f = CommentForm(auto_id=False)
+    >>> f.as_table()
+    <tr><th>Name:</th><td><input type="text" name="name" /></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url"/></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
+
+
+On a real web page, you probably don't want every widget to look the same. You
+might want a larger input element for the comment, and you might want the 'name'
+widget to have some special CSS class. To do this, you use the ``attrs``
+argument when creating the widget:
+
+.. attribute:: Widget.attrs
+
+For example::
+
+    class CommentForm(forms.Form):
+        name = forms.CharField(
+                    widget=forms.TextInput(attrs={'class':'special'}))
+        url = forms.URLField()
+        comment = forms.CharField(
+                   widget=forms.TextInput(attrs={'size':'40'}))
+
+Django will then include the extra attributes in the rendered output::
+
+    >>> f = CommentForm(auto_id=False)
+    >>> f.as_table()
+    <tr><th>Name:</th><td><input type="text" name="name" class="special"/></td></tr>
+    <tr><th>Url:</th><td><input type="text" name="url"/></td></tr>
+    <tr><th>Comment:</th><td><input type="text" name="comment" size="40"/></td></tr>
diff --git a/docs/ref/generic-views.txt b/docs/ref/generic-views.txt
new file mode 100644
index 0000000000..f92a301c2f
--- /dev/null
+++ b/docs/ref/generic-views.txt
@@ -0,0 +1,1106 @@
+.. _ref-generic-views:
+
+=============
+Generic views
+=============
+
+Writing Web applications can be monotonous, because we repeat certain patterns
+again and again. In Django, the most common of these patterns have been
+abstracted into "generic views" that let you quickly provide common views of
+an object without actually needing to write any Python code.
+
+Django's generic views contain the following:
+
+    * A set of views for doing list/detail interfaces.
+
+    * A set of views for year/month/day archive pages and associated
+      detail and "latest" pages (for example, the Django weblog's year_,
+      month_, day_, detail_, and latest_ pages).
+
+    * A set of views for creating, editing, and deleting objects.
+
+.. _year: http://www.djangoproject.com/weblog/2005/
+.. _month: http://www.djangoproject.com/weblog/2005/jul/
+.. _day: http://www.djangoproject.com/weblog/2005/jul/20/
+.. _detail: http://www.djangoproject.com/weblog/2005/jul/20/autoreload/
+.. _latest: http://www.djangoproject.com/weblog/
+
+All of these views are used by creating configuration dictionaries in
+your URLconf files and passing those dictionaries as the third member of the
+URLconf tuple for a given pattern. For example, here's the URLconf for the
+simple weblog app that drives the blog on djangoproject.com::
+
+    from django.conf.urls.defaults import *
+    from django_website.apps.blog.models import Entry
+
+    info_dict = {
+        'queryset': Entry.objects.all(),
+        'date_field': 'pub_date',
+    }
+
+    urlpatterns = patterns('django.views.generic.date_based',
+       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', info_dict),
+       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$',               'archive_day',   info_dict),
+       (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$',                                'archive_month', info_dict),
+       (r'^(?P<year>\d{4})/$',                                                    'archive_year',  info_dict),
+       (r'^$',                                                                    'archive_index', info_dict),
+    )
+
+As you can see, this URLconf defines a few options in ``info_dict``.
+``'queryset'`` gives the generic view a ``QuerySet`` of objects to use (in this
+case, all of the ``Entry`` objects) and tells the generic view which model is
+being used.
+
+Documentation of each generic view follows, along with a list of all keyword
+arguments that a generic view expects. Remember that as in the example above,
+arguments may either come from the URL pattern (as ``month``, ``day``,
+``year``, etc. do above) or from the additional-information dictionary (as for
+``queryset``, ``date_field``, etc.).
+
+Most generic views require the ``queryset`` key, which is a ``QuerySet``
+instance; see :ref:`topics-db-queries` for more information about ``QuerySet``
+objects.
+
+Most views also take an optional ``extra_context`` dictionary that you can use
+to pass any auxiliary information you wish to the view. The values in the
+``extra_context`` dictionary can be either functions (or other callables) or
+other objects. Functions are evaluated just before they are passed to the
+template. However, note that QuerySets retrieve and cache their data when they
+are first evaluated, so if you want to pass in a QuerySet via
+``extra_context`` that is always fresh you need to wrap it in a function or
+lambda that returns the QuerySet.
+
+"Simple" generic views
+======================
+
+The ``django.views.generic.simple`` module contains simple views to handle a
+couple of common cases: rendering a template when no view logic is needed,
+and issuing a redirect.
+
+``django.views.generic.simple.direct_to_template``
+--------------------------------------------------
+
+**Description:**
+
+Renders a given template, passing it a ``{{ params }}`` template variable,
+which is a dictionary of the parameters captured in the URL.
+
+**Required arguments:**
+
+    * ``template``: The full name of a template to use.
+
+**Optional arguments:**
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+**Example:**
+
+Given the following URL patterns::
+
+    urlpatterns = patterns('django.views.generic.simple',
+        (r'^foo/$',             'direct_to_template', {'template': 'foo_index.html'}),
+        (r'^foo/(?P<id>\d+)/$', 'direct_to_template', {'template': 'foo_detail.html'}),
+    )
+
+... a request to ``/foo/`` would render the template ``foo_index.html``, and a
+request to ``/foo/15/`` would render the ``foo_detail.html`` with a context
+variable ``{{ params.id }}`` that is set to ``15``.
+
+``django.views.generic.simple.redirect_to``
+-------------------------------------------
+
+**Description:**
+
+Redirects to a given URL.
+
+The given URL may contain dictionary-style string formatting, which will be
+interpolated against the parameters captured in the URL.
+
+If the given URL is ``None``, Django will return an ``HttpResponseGone`` (410).
+
+**Required arguments:**
+
+    * ``url``: The URL to redirect to, as a string. Or ``None`` to raise a 410
+      (Gone) HTTP error.
+
+**Example:**
+
+This example redirects from ``/foo/<id>/`` to ``/bar/<id>/``::
+
+    urlpatterns = patterns('django.views.generic.simple',
+        ('^foo/(?P<id>\d+)/$', 'redirect_to', {'url': '/bar/%(id)s/'}),
+    )
+
+This example returns a 410 HTTP error for requests to ``/bar/``::
+
+    urlpatterns = patterns('django.views.generic.simple',
+        ('^bar/$', 'redirect_to', {'url': None}),
+    )
+
+Date-based generic views
+========================
+
+Date-based generic views (in the module ``django.views.generic.date_based``)
+are views for displaying drilldown pages for date-based data.
+
+``django.views.generic.date_based.archive_index``
+-------------------------------------------------
+
+**Description:**
+
+A top-level index page showing the "latest" objects, by date. Objects with
+a date in the *future* are not included unless you set ``allow_future`` to
+``True``.
+
+**Required arguments:**
+
+    * ``queryset``: A ``QuerySet`` of objects for which the archive serves.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the date-based archive should use to
+      determine the objects on the page.
+
+**Optional arguments:**
+
+    * ``num_latest``: The number of latest objects to send to the template
+      context. By default, it's 15.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``True``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+    * **New in Django development version:** ``template_object_name``:
+      Designates the name of the template variable to use in the template
+      context. By default, this is ``'latest'``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_archive.html`` by default, where:
+
+    * ``<model_name>`` is your model's name in all lowercase. For a model
+      ``StaffMember``, that'd be ``staffmember``.
+
+    * ``<app_label>`` is the right-most part of the full Python path to
+      your model's app. For example, if your model lives in
+      ``apps/blog/models.py``, that'd be ``blog``.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``date_list``: A list of ``datetime.date`` objects representing all
+      years that have objects available according to ``queryset``. These are
+      ordered in reverse. This is equivalent to
+      ``queryset.dates(date_field, 'year')[::-1]``.
+
+    * ``latest``: The ``num_latest`` objects in the system, ordered descending
+      by ``date_field``. For example, if ``num_latest`` is ``10``, then
+      ``latest`` will be a list of the latest 10 objects in ``queryset``.
+
+      **New in Django development version:** This variable's name depends on
+      the ``template_object_name`` parameter, which is ``'latest'`` by default.
+      If ``template_object_name`` is ``'foo'``, this variable's name will be
+      ``foo``.
+
+``django.views.generic.date_based.archive_year``
+------------------------------------------------
+
+**Description:**
+
+A yearly archive page showing all available months in a given year. Objects
+with a date in the *future* are not displayed unless you set ``allow_future``
+to ``True``.
+
+**Required arguments:**
+
+    * ``year``: The four-digit year for which the archive serves.
+
+    * ``queryset``: A ``QuerySet`` of objects for which the archive serves.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the date-based archive should use to
+      determine the objects on the page.
+
+**Optional arguments:**
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``False``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``. The
+      view will append ``'_list'`` to the value of this parameter in
+      determining the variable's name.
+
+    * ``make_object_list``: A boolean specifying whether to retrieve the full
+      list of objects for this year and pass those to the template. If ``True``,
+      this list of objects will be made available to the template as
+      ``object_list``. (The name ``object_list`` may be different; see the docs
+      for ``object_list`` in the "Template context" section below.) By default,
+      this is ``False``.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_archive_year.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``date_list``: A list of ``datetime.date`` objects representing all
+      months that have objects available in the given year, according to
+      ``queryset``, in ascending order.
+
+    * ``year``: The given year, as a four-character string.
+
+    * ``object_list``: If the ``make_object_list`` parameter is ``True``, this
+      will be set to a list of objects available for the given year, ordered by
+      the date field. This variable's name depends on the
+      ``template_object_name`` parameter, which is ``'object'`` by default. If
+      ``template_object_name`` is ``'foo'``, this variable's name will be
+      ``foo_list``.
+
+      If ``make_object_list`` is ``False``, ``object_list`` will be passed to
+      the template as an empty list.
+
+``django.views.generic.date_based.archive_month``
+-------------------------------------------------
+
+**Description:**
+
+A monthly archive page showing all objects in a given month. Objects with a
+date in the *future* are not displayed unless you set ``allow_future`` to
+``True``.
+
+**Required arguments:**
+
+    * ``year``: The four-digit year for which the archive serves (a string).
+
+    * ``month``: The month for which the archive serves, formatted according to
+      the ``month_format`` argument.
+
+    * ``queryset``: A ``QuerySet`` of objects for which the archive serves.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the date-based archive should use to
+      determine the objects on the page.
+
+**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"``.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``False``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``. The
+      view will append ``'_list'`` to the value of this parameter in
+      determining the variable's name.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_archive_month.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``month``: A ``datetime.date`` object representing the given month.
+
+    * ``next_month``: A ``datetime.date`` object representing the first day of
+      the next month. If the next month is in the future, this will be
+      ``None``.
+
+    * ``previous_month``: A ``datetime.date`` object representing the first day
+      of the previous month. Unlike ``next_month``, this will never be
+      ``None``.
+
+    * ``object_list``: A list of objects available for the given month. This
+      variable's name depends on the ``template_object_name`` parameter, which
+      is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
+      this variable's name will be ``foo_list``.
+
+.. _strftime docs: http://www.python.org/doc/current/lib/module-time.html#l2h-1941
+
+``django.views.generic.date_based.archive_week``
+------------------------------------------------
+
+**Description:**
+
+A weekly archive page showing all objects in a given week. Objects with a date
+in the *future* are not displayed unless you set ``allow_future`` to ``True``.
+
+**Required arguments:**
+
+    * ``year``: The four-digit year for which the archive serves (a string).
+
+    * ``week``: The week of the year for which the archive serves (a string).
+      Weeks start with Sunday.
+
+    * ``queryset``: A ``QuerySet`` of objects for which the archive serves.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the date-based archive should use to
+      determine the objects on the page.
+
+**Optional arguments:**
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``True``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``. The
+      view will append ``'_list'`` to the value of this parameter in
+      determining the variable's name.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_archive_week.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``week``: A ``datetime.date`` object representing the first day of the
+      given week.
+
+    * ``object_list``: A list of objects available for the given week. This
+      variable's name depends on the ``template_object_name`` parameter, which
+      is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
+      this variable's name will be ``foo_list``.
+
+``django.views.generic.date_based.archive_day``
+-----------------------------------------------
+
+**Description:**
+
+A day archive page showing all objects in a given day. Days in the future throw
+a 404 error, regardless of whether any objects exist for future days, unless
+you set ``allow_future`` to ``True``.
+
+**Required arguments:**
+
+    * ``year``: The four-digit year for which the archive serves (a string).
+
+    * ``month``: The month for which the archive serves, formatted according to
+      the ``month_format`` argument.
+
+    * ``day``: The day for which the archive serves, formatted according to the
+      ``day_format`` argument.
+
+    * ``queryset``: A ``QuerySet`` of objects for which the archive serves.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the date-based archive should use to
+      determine the objects on the page.
+
+**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"``.
+
+    * ``day_format``: Like ``month_format``, but for the ``day`` parameter.
+      It defaults to ``"%d"`` (day of the month as a decimal number, 01-31).
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``False``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``. The
+      view will append ``'_list'`` to the value of this parameter in
+      determining the variable's name.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_archive_day.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``day``: A ``datetime.date`` object representing the given day.
+
+    * ``next_day``: A ``datetime.date`` object representing the next day. If
+      the next day is in the future, this will be ``None``.
+
+    * ``previous_day``: A ``datetime.date`` object representing the given day.
+      Unlike ``next_day``, this will never be ``None``.
+
+    * ``object_list``: A list of objects available for the given day. This
+      variable's name depends on the ``template_object_name`` parameter, which
+      is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
+      this variable's name will be ``foo_list``.
+
+``django.views.generic.date_based.archive_today``
+-------------------------------------------------
+
+**Description:**
+
+A day archive page showing all objects for *today*. This is exactly the same as
+``archive_day``, except the ``year``/``month``/``day`` arguments are not used,
+and today's date is used instead.
+
+``django.views.generic.date_based.object_detail``
+-------------------------------------------------
+
+**Description:**
+
+A page representing an individual object. If the object has a date value in the
+future, the view will throw a 404 error by default, unless you set
+``allow_future`` to ``True``.
+
+**Required arguments:**
+
+    * ``year``: The object's four-digit year (a string).
+
+    * ``month``: The object's month , formatted according to the
+      ``month_format`` argument.
+
+    * ``day``: The object's day , formatted according to the ``day_format``
+      argument.
+
+    * ``queryset``: A ``QuerySet`` that contains the object.
+
+    * ``date_field``: The name of the ``DateField`` or ``DateTimeField`` in
+      the ``QuerySet``'s model that the generic view should use to look up the
+      object according to ``year``, ``month`` and ``day``.
+
+    * Either ``object_id`` or (``slug`` *and* ``slug_field``) is required.
+
+      If you provide ``object_id``, it should be the value of the primary-key
+      field for the object being displayed on this page.
+
+      Otherwise, ``slug`` should be the slug of the given object, and
+      ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
+      model. By default, ``slug_field`` is ``'slug'``.
+
+**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"``.
+
+    * ``day_format``: Like ``month_format``, but for the ``day`` parameter.
+      It defaults to ``"%d"`` (day of the month as a decimal number, 01-31).
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_name_field``: The name of a field on the object whose value is
+      the template name to use. This lets you store template names in the data.
+      In other words, if your object has a field ``'the_template'`` that
+      contains a string ``'foo.html'``, and you set ``template_name_field`` to
+      ``'the_template'``, then the generic view for this object will use the
+      template ``'foo.html'``.
+
+      It's a bit of a brain-bender, but it's useful in some cases.
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+    * ``allow_future``: A boolean specifying whether to include "future"
+      objects on this page, where "future" means objects in which the field
+      specified in ``date_field`` is greater than the current date/time. By
+      default, this is ``False``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_detail.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``object``: The object. This variable's name depends on the
+      ``template_object_name`` parameter, which is ``'object'`` by default. If
+      ``template_object_name`` is ``'foo'``, this variable's name will be
+      ``foo``.
+
+List/detail generic views
+=========================
+
+The list-detail generic-view framework (in the
+``django.views.generic.list_detail`` module) is similar to the date-based one,
+except the former simply has two views: a list of objects and an individual
+object page.
+
+``django.views.generic.list_detail.object_list``
+------------------------------------------------
+
+**Description:**
+
+A page representing a list of objects.
+
+**Required arguments:**
+
+    * ``queryset``: A ``QuerySet`` that represents the objects.
+
+**Optional arguments:**
+
+    * ``paginate_by``: An integer specifying how many objects should be
+      displayed per page. If this is given, the view will paginate objects with
+      ``paginate_by`` objects per page. The view will expect either a ``page``
+      query string parameter (via ``GET``) or a ``page`` variable specified in
+      the URLconf. See `Notes on pagination`_ below.
+
+    * ``page``: The current page number, as an integer, or the string
+      ``'last'``. This is 1-based. See `Notes on pagination`_ below.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``allow_empty``: A boolean specifying whether to display the page if no
+      objects are available. If this is ``False`` and no objects are available,
+      the view will raise a 404 instead of displaying an empty page. By
+      default, this is ``True``.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``. The
+      view will append ``'_list'`` to the value of this parameter in
+      determining the variable's name.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_list.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``object_list``: The list of objects. This variable's name depends on the
+      ``template_object_name`` parameter, which is ``'object'`` by default. If
+      ``template_object_name`` is ``'foo'``, this variable's name will be
+      ``foo_list``.
+
+    * ``is_paginated``: A boolean representing whether the results are
+      paginated. Specifically, this is set to ``False`` if the number of
+      available objects is less than or equal to ``paginate_by``.
+
+If the results are paginated, the context will contain these extra variables:
+
+    * **New in Django development version:** ``paginator``: An instance of
+      ``django.core.paginator.Paginator``.
+
+    * **New in Django development version:** ``page_obj``: An instance of
+      ``django.core.paginator.Page``.
+
+Notes on pagination
+~~~~~~~~~~~~~~~~~~~
+
+If ``paginate_by`` is specified, Django will paginate the results. You can
+specify the page number in the URL in one of two ways:
+
+    * Use the ``page`` parameter in the URLconf. For example, this is what
+      your URLconf might look like::
+
+        (r'^objects/page(?P<page>[0-9]+)/$', 'object_list', dict(info_dict))
+
+    * Pass the page number via the ``page`` query-string parameter. For
+      example, a URL would look like this::
+
+        /objects/?page=3
+
+    * To loop over all the available page numbers, use the ``page_range`` 
+      variable. You can iterate over the list provided by ``page_range`` 
+      to create a link to every page of results.
+
+These values and lists are 1-based, not 0-based, so the first page would be
+represented as page ``1``. 
+
+For more on pagination, read the :ref:`pagination documentation
+<topics-pagination>`.
+
+**New in Django development version:** 
+
+As a special case, you are also permitted to use ``last`` as a value for
+``page``::
+
+    /objects/?page=last
+
+This allows you to access the final page of results without first having to 
+determine how many pages there are.
+
+Note that ``page`` *must* be either a valid page number or the value ``last``;
+any other value for ``page`` will result in a 404 error.
+
+``django.views.generic.list_detail.object_detail``
+--------------------------------------------------
+
+A page representing an individual object.
+
+**Description:**
+
+A page representing an individual object.
+
+**Required arguments:**
+
+    * ``queryset``: A ``QuerySet`` that contains the object.
+
+    * Either ``object_id`` or (``slug`` *and* ``slug_field``) is required.
+
+      If you provide ``object_id``, it should be the value of the primary-key
+      field for the object being displayed on this page.
+
+      Otherwise, ``slug`` should be the slug of the given object, and
+      ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
+      model. By default, ``slug_field`` is ``'slug'``.
+
+**Optional arguments:**
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_name_field``: The name of a field on the object whose value is
+      the template name to use. This lets you store template names in the data.
+      In other words, if your object has a field ``'the_template'`` that
+      contains a string ``'foo.html'``, and you set ``template_name_field`` to
+      ``'the_template'``, then the generic view for this object will use the
+      template ``'foo.html'``.
+
+      It's a bit of a brain-bender, but it's useful in some cases.
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``.
+
+    * ``mimetype``: The MIME type to use for the resulting document. Defaults
+      to the value of the ``DEFAULT_CONTENT_TYPE`` setting.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_detail.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``object``: The object. This variable's name depends on the
+      ``template_object_name`` parameter, which is ``'object'`` by default. If
+      ``template_object_name`` is ``'foo'``, this variable's name will be
+      ``foo``.
+
+Create/update/delete generic views
+==================================
+
+The ``django.views.generic.create_update`` module contains a set of functions
+for creating, editing and deleting objects.
+
+**Changed in Django development version:**
+
+``django.views.generic.create_update.create_object`` and
+``django.views.generic.create_update.update_object`` now use the new :ref:`forms
+library <topics-forms-index>` to build and display the form.
+
+``django.views.generic.create_update.create_object``
+----------------------------------------------------
+
+**Description:**
+
+A page that displays a form for creating an object, redisplaying the form with
+validation errors (if there are any) and saving the object. 
+
+**Required arguments:**
+
+    * Either ``form_class`` or ``model`` is required.
+
+      If you provide ``form_class``, it should be a ``django.forms.ModelForm``
+      subclass. Use this argument when you need to customize the model's form.
+      See the :ref:`ModelForm docs <topics-forms-modelforms>` for more
+      information.
+
+      Otherwise, ``model`` should be a Django model class and the form used
+      will be a standard ``ModelForm`` for ``model``.
+
+**Optional arguments:**
+
+    * ``post_save_redirect``: A URL to which the view will redirect after
+      saving the object. By default, it's ``object.get_absolute_url()``.
+
+      ``post_save_redirect`` may contain dictionary string formatting, which
+      will be interpolated against the object's field attributes. For example,
+      you could use ``post_save_redirect="/polls/%(slug)s/"``.
+
+    * ``login_required``: A boolean that designates whether a user must be
+      logged in, in order to see the page and save changes. This hooks into the
+      Django :ref:`authentication system <topics-auth>`. By default, this is
+      ``False``.
+
+      If this is ``True``, and a non-logged-in user attempts to visit this page
+      or save the form, Django will redirect the request to ``/accounts/login/``.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_form.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``form``: A ``django.forms.ModelForm`` instance representing the form
+      for creating the object. This lets you refer to form fields easily in the
+      template system.
+
+      For example, if the model has two fields, ``name`` and ``address``::
+
+          <form action="" method="post">
+          <p>{{ form.name.label_tag }} {{ form.name }}</p>
+          <p>{{ form.address.label_tag }} {{ form.address }}</p>
+          </form>
+
+      See the :ref:`forms documentation <topics-forms-index>` for more
+      information about using ``Form`` objects in templates.
+
+``django.views.generic.create_update.update_object``
+----------------------------------------------------
+
+**Description:**
+
+A page that displays a form for editing an existing object, redisplaying the
+form with validation errors (if there are any) and saving changes to the
+object. This uses a form automatically generated from the object's
+model class.
+
+**Required arguments:**
+
+    * Either ``form_class`` or ``model`` is required.
+
+      If you provide ``form_class``, it should be a ``django.forms.ModelForm``
+      subclass. Use this argument when you need to customize the model's form.
+      See the :ref:`ModelForm docs <topics-forms-modelforms>` for more
+      information.
+
+      Otherwise, ``model`` should be a Django model class and the form used
+      will be a standard ``ModelForm`` for ``model``.
+
+    * Either ``object_id`` or (``slug`` *and* ``slug_field``) is required.
+
+      If you provide ``object_id``, it should be the value of the primary-key
+      field for the object being displayed on this page.
+
+      Otherwise, ``slug`` should be the slug of the given object, and
+      ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
+      model. By default, ``slug_field`` is ``'slug'``.
+
+**Optional arguments:**
+
+    * ``post_save_redirect``: A URL to which the view will redirect after
+      saving the object. By default, it's ``object.get_absolute_url()``.
+
+      ``post_save_redirect`` may contain dictionary string formatting, which
+      will be interpolated against the object's field attributes. For example,
+      you could use ``post_save_redirect="/polls/%(slug)s/"``.
+
+    * ``login_required``: A boolean that designates whether a user must be
+      logged in, in order to see the page and save changes. This hooks into the
+      Django :ref:`authentication system <topics-auth>`. By default, this is
+      ``False``.
+
+      If this is ``True``, and a non-logged-in user attempts to visit this page
+      or save the form, Django will redirect the request to ``/accounts/login/``.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_form.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``form``: A ``django.forms.ModelForm`` instance representing the form
+      for editing the object. This lets you refer to form fields easily in the
+      template system.
+
+      For example, if the model has two fields, ``name`` and ``address``::
+
+          <form action="" method="post">
+          <p>{{ form.name.label_tag }} {{ form.name }}</p>
+          <p>{{ form.address.label_tag }} {{ form.address }}</p>
+          </form>
+
+      See the :ref:`forms documentation <topics-forms-index>` for more
+      information about using ``Form`` objects in templates.
+
+    * ``object``: The original object being edited. This variable's name
+      depends on the ``template_object_name`` parameter, which is ``'object'``
+      by default. If ``template_object_name`` is ``'foo'``, this variable's
+      name will be ``foo``.
+
+``django.views.generic.create_update.delete_object``
+----------------------------------------------------
+
+**Description:**
+
+A view that displays a confirmation page and deletes an existing object. The
+given object will only be deleted if the request method is ``POST``. If this
+view is fetched via ``GET``, it will display a confirmation page that should
+contain a form that POSTs to the same URL.
+
+**Required arguments:**
+
+    * ``model``: The Django model class of the object that the form will
+      create.
+
+    * Either ``object_id`` or (``slug`` *and* ``slug_field``) is required.
+
+      If you provide ``object_id``, it should be the value of the primary-key
+      field for the object being displayed on this page.
+
+      Otherwise, ``slug`` should be the slug of the given object, and
+      ``slug_field`` should be the name of the slug field in the ``QuerySet``'s
+      model. By default, ``slug_field`` is ``'slug'``.
+
+    * ``post_delete_redirect``: A URL to which the view will redirect after
+      deleting the object.
+
+**Optional arguments:**
+
+    * ``login_required``: A boolean that designates whether a user must be
+      logged in, in order to see the page and save changes. This hooks into the
+      Django :ref:`authentication system <topics-auth>`. By default, this is
+      ``False``.
+
+      If this is ``True``, and a non-logged-in user attempts to visit this page
+      or save the form, Django will redirect the request to ``/accounts/login/``.
+
+    * ``template_name``: The full name of a template to use in rendering the
+      page. This lets you override the default template name (see below).
+
+    * ``template_loader``: The template loader to use when loading the
+      template. By default, it's ``django.template.loader``.
+
+    * ``extra_context``: A dictionary of values to add to the template
+      context. By default, this is an empty dictionary. If a value in the
+      dictionary is callable, the generic view will call it
+      just before rendering the template.
+
+    * ``context_processors``: A list of template-context processors to apply to
+      the view's template.
+
+    * ``template_object_name``:  Designates the name of the template variable
+      to use in the template context. By default, this is ``'object'``.
+
+**Template name:**
+
+If ``template_name`` isn't specified, this view will use the template
+``<app_label>/<model_name>_confirm_delete.html`` by default.
+
+**Template context:**
+
+In addition to ``extra_context``, the template's context will be:
+
+    * ``object``: The original object that's about to be deleted. This
+      variable's name depends on the ``template_object_name`` parameter, which
+      is ``'object'`` by default. If ``template_object_name`` is ``'foo'``,
+      this variable's name will be ``foo``.
diff --git a/docs/ref/index.txt b/docs/ref/index.txt
new file mode 100644
index 0000000000..ac71175abf
--- /dev/null
+++ b/docs/ref/index.txt
@@ -0,0 +1,21 @@
+.. _ref-index:
+
+API Reference
+=============
+
+.. toctree::
+   :maxdepth: 1
+   
+   contrib/index
+   databases
+   django-admin
+   forms/index
+   generic-views
+   middleware
+   models/index
+   request-response
+   settings
+   templates/index
+   unicode
+   files/index
+   
\ No newline at end of file
diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt
new file mode 100644
index 0000000000..48a3e81cc4
--- /dev/null
+++ b/docs/ref/middleware.txt
@@ -0,0 +1,200 @@
+.. _ref-middleware:
+
+=============================
+Built-in middleware reference
+=============================
+
+.. module:: django.middleware
+   :synopsis: Django's built-in middleware classes.
+
+This document explains all middleware components that come with Django. For
+information on how how to use them and how to write your own middleware, see the
+:ref:`middleware usage guide <topics-http-middleware>`.
+
+Available middleware
+====================
+
+Cache middleware
+----------------
+
+.. module:: django.middleware.cache
+   :synopsis: Middleware for the site-wide cache
+   
+.. class:: django.middleware.cache.CacheMiddleware
+
+Enables the site-wide cache. If this is enabled, each Django-powered page will
+be cached for as long as the :setting:`CACHE_MIDDLEWARE_SECONDS` setting
+defines. See the :ref:`cache documentation <topics-cache>`.
+
+"Common" middleware
+-------------------
+
+.. module:: django.middleware.common
+   :synopsis: Middleware adding "common" conveniences for perfectionists.
+   
+.. class:: django.middleware.common.CommonMiddleware
+
+Adds a few conveniences for perfectionists:
+
+    * Forbids access to user agents in the :setting:`DISALLOWED_USER_AGENTS`
+      setting, which should be a list of strings.
+
+    * Performs URL rewriting based on the :setting:`APPEND_SLASH` and
+      :setting:`PREPEND_WWW` settings.
+
+      If :setting:`APPEND_SLASH` is ``True`` and the initial URL doesn't end
+      with a slash, and it is not found in the URLconf, then a new URL is formed
+      by appending a slash at the end. If this new URL is found in the URLconf,
+      then Django redirects the request to this new URL. Otherwise, the initial
+      URL is processed as usual.
+
+      For example, ``foo.com/bar`` will be redirected to ``foo.com/bar/`` if you
+      don't have a valid URL pattern for ``foo.com/bar`` but *do* have a valid
+      pattern for ``foo.com/bar/``.
+
+      **New in Django development version:** The behavior of
+      :setting:`APPEND_SLASH` has changed slightly in the development version.
+      It didn't used to check whether the pattern was matched in the URLconf.
+
+      If :setting:`PREPEND_WWW` is ``True``, URLs that lack a leading "www."
+      will be redirected to the same URL with a leading "www."
+
+      Both of these options are meant to normalize URLs. The philosophy is that
+      each URL should exist in one, and only one, place. Technically a URL
+      ``foo.com/bar`` is distinct from ``foo.com/bar/`` -- a search-engine
+      indexer would treat them as separate URLs -- so it's best practice to
+      normalize URLs.
+
+    * Handles ETags based on the :setting:`USE_ETAGS` setting. If
+      :setting:`USE_ETAGS` is set to ``True``, Django will calculate an ETag for
+      each request by MD5-hashing the page content, and it'll take care of
+      sending ``Not Modified`` responses, if appropriate.
+
+View metadata middleware
+------------------------
+
+.. module:: django.middleware.doc
+   :synopsis: Middleware to help your app self-document.
+
+.. class:: django.middleware.doc.XViewMiddleware
+
+Sends custom ``X-View`` HTTP headers to HEAD requests that come from IP
+addresses defined in the :setting:`INTERNAL_IPS` setting. This is used by
+Django's automatic documentation system.
+
+GZIP middleware
+---------------
+
+.. module:: django.middleware.gzip
+   :synopsis: Middleware to serve gziped content for performance.
+   
+.. class:: django.middleware.gzip.GZipMiddleware
+
+Compresses content for browsers that understand gzip compression (all modern
+browsers).
+
+It is suggested to place this first in the middleware list, so that the
+compression of the response content is the last thing that happens. Will not
+compress content bodies less than 200 bytes long, when the response code is
+something other than 200, JavaScript files (for IE compatibility), or
+responses that have the ``Content-Encoding`` header already specified.
+
+Conditional GET middleware
+--------------------------
+
+.. module:: django.middleware.http
+   :synopsis: Middleware handling advanced HTTP features.
+
+.. class:: django.middleware.http.ConditionalGetMiddleware
+
+Handles conditional GET operations. If the response has a ``ETag`` or
+``Last-Modified`` header, and the request has ``If-None-Match`` or
+``If-Modified-Since``, the response is replaced by an
+:class:`~django.http.HttpNotModified`.
+
+Also sets the ``Date`` and ``Content-Length`` response-headers.
+
+Reverse proxy middleware
+------------------------
+
+.. class:: django.middleware.http.SetRemoteAddrFromForwardedFor
+
+Sets ``request.META['REMOTE_ADDR']`` based on
+``request.META['HTTP_X_FORWARDED_FOR']``, if the latter is set. This is useful
+if you're sitting behind a reverse proxy that causes each request's
+``REMOTE_ADDR`` to be set to ``127.0.0.1``.
+
+**Important note:** This does NOT validate ``HTTP_X_FORWARDED_FOR``. If you're
+not behind a reverse proxy that sets ``HTTP_X_FORWARDED_FOR`` automatically, do
+not use this middleware. Anybody can spoof the value of
+``HTTP_X_FORWARDED_FOR``, and because this sets ``REMOTE_ADDR`` based on
+``HTTP_X_FORWARDED_FOR``, that means anybody can "fake" their IP address. Only
+use this when you can absolutely trust the value of ``HTTP_X_FORWARDED_FOR``.
+
+Locale middleware
+-----------------
+
+.. module:: django.middleware.locale
+   :synopsis: Middleware to enable language selection based on the request.
+   
+.. class:: django.middleware.locale.LocaleMiddleware
+
+Enables language selection based on data from the request. It customizes content
+for each user. See the :ref:`internationalization documentation <topics-i18n>`.
+
+Session middleware
+------------------
+
+.. module:: django.contrib.sessions.middleware
+   :synopsis: Session middleware.
+
+.. class:: django.contrib.sessions.middleware.SessionMiddleware
+
+Enables session support. See the :ref:`session documentation
+<topics-http-sessions>`.
+
+Authentication middleware
+-------------------------
+
+.. module:: django.contrib.auth.middleware
+  :synopsis: Authentication middleware
+  
+.. class:: django.contrib.auth.middleware.AuthenticationMiddleware
+
+Adds the ``user`` attribute, representing the currently-logged-in user, to every
+incoming ``HttpRequest`` object. See :ref:` Authentication in Web requests
+<topics-http-auth>`.
+
+CSRF protection middleware
+--------------------------
+
+.. module:: django.contrib.csrf.middleware
+   :synopsis: Middleware adding protection against Cross Site Request Forgeries.
+
+.. class:: django.contrib.csrf.middleware.CsrfMiddleware
+
+**New in Django development version**
+
+Adds protection against Cross Site Request Forgeries by adding hidden form
+fields to POST forms and checking requests for the correct value. See the
+:ref:`Cross Site Request Forgery protection documentation <ref-contrib-csrf>`.
+
+Transaction middleware
+----------------------
+
+.. module:: django.middleware.transaction
+   :synopsis: Middleware binding a database transaction to each web request.
+
+.. class:: django.middleware.transaction.TransactionMiddleware
+
+Binds commit and rollback to the request/response phase. If a view function runs
+successfully, a commit is done. If it fails with an exception, a rollback is
+done.
+
+The order of this middleware in the stack is important: middleware modules
+running outside of it run with commit-on-save - the default Django behavior.
+Middleware modules running inside it (coming later in the stack) will be under
+the same transaction control as the view functions.
+
+See the :ref:`transaction management documentation <topics-db-transactions>`.
+
diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt
new file mode 100644
index 0000000000..f0638d1ea5
--- /dev/null
+++ b/docs/ref/models/fields.txt
@@ -0,0 +1,902 @@
+.. _ref-models-fields:
+
+=====================
+Model field reference
+=====================
+
+.. module:: django.db.models.fields
+   :synopsis: Built-in field types.
+
+This document contains all the gory details about all the `field options`_ and
+`field types`_ Django's got to offer.
+
+.. seealso:: 
+
+    If the built-in fields don't do the trick, you can easily :ref:`write your
+    own custom model fields <howto-custom-model-fields>`.
+
+.. note::
+
+    Technically, these models are defined in :mod:`django.db.models.fields`, but
+    for convenience they're imported into :mod:`django.db.models`; the standard
+    convention is to use ``from django.db import models`` and refer to fields as
+    ``models.<Foo>Field``.
+
+.. _common-model-field-options:
+
+Field options
+=============
+
+The following arguments are available to all field types. All are optional.
+
+``null``
+--------
+
+.. attribute:: Field.null
+
+If ``True``, Django will store empty values as ``NULL`` in the database. Default
+is ``False``.
+
+Note that empty string values will always get stored as empty strings, not as
+``NULL``. Only use ``null=True`` for non-string fields such as integers,
+booleans and dates. For both types of fields, you will also need to set
+``blank=True`` if you wish to permit empty values in forms, as the
+:attr:`~Field.null` parameter only affects database storage (see
+:attr:`~Field.blank`).
+
+Avoid using :attr:`~Field.null` on string-based fields such as
+:class:`CharField` and :class:`TextField` unless you have an excellent reason.
+If a string-based field has ``null=True``, that means it has two possible values
+for "no data": ``NULL``, and the empty string. In most cases, it's redundant to
+have two possible values for "no data;" Django convention is to use the empty
+string, not ``NULL``.
+
+.. note::
+
+    When using the Oracle database backend, the ``null=True`` option will be
+    coerced for string-based fields that can blank, and the value ``NULL`` will
+    be stored to denote the empty string.
+
+``blank``
+---------
+
+.. attribute:: Field.blank
+
+If ``True``, the field is allowed to be blank. Default is ``False``.
+
+Note that this is different than :attr:`~Field.null`. :attr:`~Field.null` is
+purely database-related, whereas :attr:`~Field.blank` is validation-related. If
+a field has ``blank=True``, validation on Django's admin site will allow entry
+of an empty value. If a field has ``blank=False``, the field will be required.
+
+``choices``
+-----------
+
+.. attribute:: Field.choices
+
+An iterable (e.g., a list or tuple) of 2-tuples to use as choices for this
+field.
+
+If this is given, Django's admin will use a select box instead of the standard
+text field and will limit choices to the choices given.
+
+A choices list looks like this::
+
+    YEAR_IN_SCHOOL_CHOICES = (
+        ('FR', 'Freshman'),
+        ('SO', 'Sophomore'),
+        ('JR', 'Junior'),
+        ('SR', 'Senior'),
+        ('GR', 'Graduate'),
+    )
+
+The first element in each tuple is the actual value to be stored. The second
+element is the human-readable name for the option.
+
+The choices list can be defined either as part of your model class::
+
+    class Foo(models.Model):
+        GENDER_CHOICES = (
+            ('M', 'Male'),
+            ('F', 'Female'),
+        )
+        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
+
+or outside your model class altogether::
+
+    GENDER_CHOICES = (
+        ('M', 'Male'),
+        ('F', 'Female'),
+    )
+    class Foo(models.Model):
+        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
+
+You can also collect your available choices into named groups that can
+be used for organizational purposes::
+
+    MEDIA_CHOICES = (
+        ('Audio', (
+                ('vinyl', 'Vinyl'),
+                ('cd', 'CD'),
+            )
+        ),
+        ('Video', (
+                ('vhs', 'VHS Tape'),
+                ('dvd', 'DVD'),
+            )
+        ),
+        ('unknown', 'Unknown'),
+    )
+
+The first element in each tuple is the name to apply to the group. The 
+second element is an iterable of 2-tuples, with each 2-tuple containing
+a value and a human-readable name for an option. Grouped options may be 
+combined with ungrouped options within a single list (such as the 
+`unknown` option in this example).
+
+For each model field that has :attr:`~Field.choices` set, Django will add a
+method to retrieve the human-readable name for the field's current value. See
+:meth:`~django.db.models.Model.get_FOO_display` in the database API
+documentation.
+
+Finally, note that choices can be any iterable object -- not necessarily a list
+or tuple. This lets you construct choices dynamically. But if you find yourself
+hacking :attr:`~Field.choices` to be dynamic, you're probably better off using a
+proper database table with a :class:`ForeignKey`. :attr:`~Field.choices` is
+meant for static data that doesn't change much, if ever.
+
+``core``
+--------
+
+.. attribute:: Field.core
+
+For objects that are edited inline to a related object.
+
+In the Django admin, if all "core" fields in an inline-edited object are
+cleared, the object will be deleted.
+
+It is an error to have an inline-editable relation without at least one
+``core=True`` field.
+
+Please note that each field marked "core" is treated as a required field by the
+Django admin site. Essentially, this means you should put ``core=True`` on all
+required fields in your related object that is being edited inline.
+
+``db_column``
+-------------
+
+.. attribute:: Field.db_column
+
+The name of the database column to use for this field. If this isn't given,
+Django will use the field's name.
+
+If your database column name is an SQL reserved word, or contains
+characters that aren't allowed in Python variable names -- notably, the
+hyphen -- that's OK. Django quotes column and table names behind the
+scenes.
+
+``db_index``
+------------
+
+.. attribute:: Field.db_index
+
+If ``True``, djadmin:`django-admin.py sqlindexes <sqlindexes>` will output a
+``CREATE INDEX`` statement for this field.
+
+``db_tablespace``
+-----------------
+
+.. attribute:: Field.db_tablespace
+
+**New in Django development version**
+
+The name of the database tablespace to use for this field's index, if this field
+is indexed. The default is the project's :setting:`DEFAULT_INDEX_TABLESPACE`
+setting, if set, or the :attr:`~Field.db_tablespace` of the model, if any. If
+the backend doesn't support tablespaces, this option is ignored.
+
+``default``
+-----------
+
+.. attribute:: Field.default
+
+The default value for the field. This can be a value or a callable object. If
+callable it will be called every time a new object is created.
+
+``editable``
+------------
+
+.. attribute:: Field.editable
+
+If ``False``, the field will not be editable in the admin or via forms
+automatically generated from the model class. Default is ``True``.
+
+``help_text``
+-------------
+
+.. attribute:: Field.help_text
+
+Extra "help" text to be displayed under the field on the object's admin form.
+It's useful for documentation even if your object doesn't have an admin form.
+
+Note that this value is *not* HTML-escaped when it's displayed in the admin
+interface. This lets you include HTML in :attr:`~Field.help_text` if you so
+desire. For example::
+
+    help_text="Please use the following format: <em>YYYY-MM-DD</em>."
+
+Alternatively you can use plain text and
+``django.utils.html.escape()`` to escape any HTML special characters.
+
+``primary_key``
+---------------
+
+.. attribute:: Field.primary_key
+
+If ``True``, this field is the primary key for the model.
+
+If you don't specify ``primary_key=True`` for any fields in your model, Django
+will automatically add an :class:`IntegerField` to hold the primary key, so you
+don't need to set ``primary_key=True`` on any of your fields unless you want to
+override the default primary-key behavior. For more, see
+:ref:`automatic-primary-key-fields`.
+
+``primary_key=True`` implies :attr:`null=False <Field.null>` and :attr:`unique=True <Field.unique>`. 
+Only one primary key is allowed on an object.
+
+``unique``
+----------
+
+.. attribute:: Field.unique
+
+If ``True``, this field must be unique throughout the table.
+
+This is enforced at the database level and at the Django admin-form level. If
+you try to save a model with a duplicate value in a :attr:`~Field.unique`
+field, a :exc:`django.db.IntegrityError` will be raised by the model's
+:meth:`~django.db.models.Model.save` method.
+
+This options is valid on all field types except :class:`ManyToManyField`.
+
+``unique_for_date``
+-------------------
+
+.. attribute:: Field.unique_for_date
+
+Set this to the name of a :class:`DateField` or :class:`DateTimeField` to
+require that this field be unique for the value of the date field.
+
+For example, if you have a field ``title`` that has
+``unique_for_date="pub_date"``, then Django wouldn't allow the entry of two
+records with the same ``title`` and ``pub_date``.
+
+This is enforced at the Django admin-form level but not at the database level.
+
+``unique_for_month``
+--------------------
+
+.. attribute:: Field.unique_for_month
+
+Like :attr:`~Field.unique_for_date`, but requires the field to be unique with
+respect to the month.
+
+``unique_for_year``
+-------------------
+
+.. attribute:: Field.unique_for_year
+
+Like :attr:`~Field.unique_for_date` and :attr:`~Field.unique_for_month`.
+
+``validator_list``
+------------------
+
+.. attribute:: Field.validator_list
+
+A list of extra validators to apply to the field. Each should be a callable that
+takes the parameters ``field_data, all_data`` and raises
+:exc:`django.core.validators.ValidationError` for errors.
+
+.. _model-field-types:
+
+Field types
+===========
+   
+.. currentmodule:: django.db.models
+   
+``AutoField``
+-------------
+
+.. class:: AutoField(**options)
+
+An :class:`IntegerField` that automatically increments
+according to available IDs. You usually won't need to use this directly; a
+primary key field will automatically be added to your model if you don't specify
+otherwise. See :ref:`automatic-primary-key-fields`.
+
+``BooleanField``
+----------------
+
+.. class:: BooleanField(**options)
+
+A true/false field.
+
+The admin represents this as a checkbox.
+
+``CharField``
+-------------
+
+.. class:: CharField(max_length=None, [**options])
+
+A string field, for small- to large-sized strings.
+
+For large amounts of text, use :class:`~django.db.models.TextField`.
+
+The admin represents this as an ``<input type="text">`` (a single-line input).
+
+:class:`CharField` has one extra required argument:
+
+.. attribute:: CharField.max_length
+
+    The maximum length (in characters) of the field. The max_length is enforced
+    at the database level and in Django's validation.
+
+``CommaSeparatedIntegerField``
+------------------------------
+
+.. class:: CommaSeparatedIntegerField(max_length=None, [**options])
+
+A field of integers separated by commas. As in :class:`CharField`, the
+:attr:`~CharField.max_length` argument is required.
+
+``DateField``
+-------------
+
+.. class:: DateField([auto_now=False, auto_now_add=False, **options])
+
+A date field. Has a few extra optional arguments:
+
+.. attribute:: DateField.auto_now
+
+    Automatically set the field to now every time the object is saved. Useful
+    for "last-modified" timestamps. Note that the current date is *always* used;
+    it's not just a default value that you can override.
+
+.. attribute:: DateField.auto_now_add
+
+    Automatically set the field to now when the object is first created. Useful
+    for creation of timestamps. Note that the current date is *always* used;
+    it's not just a default value that you can override.
+
+The admin represents this as an ``<input type="text">`` with a JavaScript
+calendar, and a shortcut for "Today".  The JavaScript calendar will always start
+the week on a Sunday.
+
+``DateTimeField``
+-----------------
+
+.. class:: DateTimeField([auto_now=False, auto_now_add=False, **options])
+
+A date and time field. Takes the same extra options as :class:`DateField`.
+
+The admin represents this as two ``<input type="text">`` fields, with JavaScript
+shortcuts.
+
+``DecimalField``
+----------------
+
+**New in Django development version**
+
+.. class:: DecimalField(max_digits=None, decimal_places=None, [**options])
+
+A fixed-precision decimal number, represented in Python by a
+:class:`~decimal.Decimal` instance. Has two **required** arguments:
+
+.. attribute:: DecimalField.max_digits
+
+    The maximum number of digits allowed in the number
+
+.. attribute:: DecimalField.decimal_places
+
+    The number of decimal places to store with the number
+
+For example, to store numbers up to 999 with a resolution of 2 decimal places,
+you'd use::
+
+    models.DecimalField(..., max_digits=5, decimal_places=2)
+
+And to store numbers up to approximately one billion with a resolution of 10
+decimal places::
+
+    models.DecimalField(..., max_digits=19, decimal_places=10)
+
+The admin represents this as an ``<input type="text">`` (a single-line input).
+
+``EmailField``
+--------------
+
+.. class:: EmailField([max_length=75, **options])
+
+A :class:`CharField` that checks that the value is a valid e-mail address.
+
+In Django 0.96, this doesn't accept :attr:`~CharField.max_length`; its
+:class:`~CharField.max_length` is automatically set to 75. In the Django
+development version, :class:`~CharField.max_length` is set to 75 by default, but
+you can specify it to override default behavior.
+
+``FileField``
+-------------
+
+.. class:: FileField(upload_to=None, [max_length=100, **options])
+
+A file-upload field. Has one **required** argument:
+
+.. attribute:: FileField.upload_to
+    
+    A local filesystem path that will be appended to your :setting:`MEDIA_ROOT`
+    setting to determine the output of the ``get_<fieldname>_url()`` helper
+    function.
+
+    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).
+    
+    **New in Django development version**
+
+    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 to accept two arguments, and return a Unix-style path (with forward
+    slashes) to be passed along to the storage system. The two arguments that will
+    be passed are:
+    
+        ======================  ===============================================
+        Argument                Description                                    
+        ======================  ===============================================
+        ``instance``            An instance of the model where the 
+                                ``FileField`` is defined. More specifically,
+                                this is the particular instance where the
+                                current file is being attached.
+                                
+                                In most cases, this object will not have been
+                                saved to the database yet, so if it uses the
+                                default ``AutoField``, *it might not yet have a
+                                value for its primary key field*.
+    
+        ``filename``            The filename that was originally given to the 
+                                file. This may or may not be taken into account
+                                when determining the final destination path.
+        ======================  ===============================================
+    
+Also has one optional argument:
+
+.. attribute:: FileField.storage
+
+    **New in Django development version.**
+    
+    Optional. A storage object, which handles the storage and retrieval of your
+    files. See :ref:`topics-files` for details on how to provide this object.
+
+The admin represents this field as an ``<input type="file">`` (a file-upload
+widget).
+
+Using a :class:`FileField` or an :class:`ImageField` (see below) in a model
+takes a few steps:
+
+    1. In your settings file, you'll need to define :setting:`MEDIA_ROOT` as the
+       full path to a directory where you'd like Django to store uploaded files.
+       (For performance, these files are not stored in the database.) Define
+       :setting:`MEDIA_URL` as the base public URL of that directory. Make sure
+       that this directory is writable by the Web server's user account.
+
+    2. Add the :class:`FileField` or :class:`ImageField` to your model, making
+       sure to define the :attr:`~FileField.upload_to` option to tell Django to
+       which subdirectory of :setting:`MEDIA_ROOT` it should upload files.
+
+    3. All that will be stored in your database is a path to the file
+       (relative to :setting:`MEDIA_ROOT`). You'll most likely want to use the
+       convenience ``get_<fieldname>_url`` function provided by Django. For
+       example, if your :class:`ImageField` is called ``mug_shot``, you can get
+       the absolute URL to your image in a template with ``{{
+       object.get_mug_shot_url }}``.
+
+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``.
+
+If you want to retrieve the upload file's on-disk filename, or a URL that refers
+to that file, or the file's size, you can use the ``File.name``, ``File.url``
+and ``File.size`` attributes; see :ref:`topics-files`.
+
+Note that whenever you deal with uploaded files, you should pay close attention
+to where you're uploading them and what type of files they are, to avoid
+security holes. *Validate all uploaded files* so that you're sure the files are
+what you think they are. For example, if you blindly let somebody upload files,
+without validation, to a directory that's within your Web server's document
+root, then somebody could upload a CGI or PHP script and execute that script by
+visiting its URL on your site. Don't allow that.
+
+**New in development version:** By default, :class:`FileField` instances are
+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/lib/module-time.html#l2h-1941
+
+``FilePathField``
+-----------------
+
+.. class:: FilePathField(path=None, [match=None, recursive=False, max_length=100, **options])
+
+A :class:`CharField` whose choices are limited to the filenames in a certain
+directory on the filesystem. Has three special arguments, of which the first is
+**required**:
+
+.. attribute:: FilePathField.path
+
+    Required. The absolute filesystem path to a directory from which this
+    :class:`FilePathField` should get its choices. Example: ``"/home/images"``.
+
+.. attribute:: FilePathField.match
+
+    Optional. A regular expression, as a string, that :class:`FilePathField`
+    will use to filter filenames. Note that the regex will be applied to the
+    base filename, not the full path. Example: ``"foo.*\.txt$"``, which will
+    match a file called ``foo23.txt`` but not ``bar.txt`` or ``foo23.gif``.
+
+.. attribute:: FilePathField.recursive
+    
+    Optional. Either ``True`` or ``False``. Default is ``False``. Specifies
+    whether all subdirectories of :attr:`~FilePathField.path` should be included
+
+Of course, these arguments can be used together.
+
+The one potential gotcha is that :attr:`~FilePathField.match` applies to the
+base filename, not the full path. So, this example::
+
+    FilePathField(path="/home/images", match="foo.*", recursive=True)
+
+...will match ``/home/images/foo.gif`` but not ``/home/images/foo/bar.gif``
+because the :attr:`~FilePathField.match` applies to the base filename
+(``foo.gif`` and ``bar.gif``).
+
+**New in development version:** By default, :class:`FilePathField` instances are
+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.
+
+``FloatField``
+--------------
+
+.. class:: FloatField([**options])
+
+**Changed in Django development version**
+
+A floating-point number represented in Python by a ``float`` instance.
+
+The admin represents this as an ``<input type="text">`` (a single-line input).
+
+**NOTE:** The semantics of :class:`FloatField` have changed in the Django
+development version. See the `Django 0.96 documentation`_ for the old behavior.
+
+.. _Django 0.96 documentation: http://www.djangoproject.com/documentation/0.96/model-api/#floatfield
+
+``ImageField``
+--------------
+
+.. class:: ImageField(upload_to-None, [height_field=None, width_field=None, max_length=100, **options])
+
+Like :class:`FileField`, but validates that the uploaded object is a valid
+image. Has two extra optional arguments:
+
+.. attribute:: ImageField.height_field
+
+    Name of a model field which will be auto-populated with the height of the
+    image each time the model instance is saved.
+
+.. attribute:: ImageField.width_field`
+
+    Name of a model field which will be auto-populated with the width of the
+    image each time the model instance is saved.
+    
+In addition to the special attributes that are available for :class:`FileField`,
+an :class:`ImageField` also has ``File.height`` and ``File.width`` attributes.
+See :ref:`topics-files`.
+
+Requires the `Python Imaging Library`_.
+
+.. _Python Imaging Library: http://www.pythonware.com/products/pil/
+
+**New in development version:** By default, :class:`ImageField` instances are
+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.
+
+``IntegerField``
+----------------
+
+.. class:: IntegerField([**options])
+
+An integer. The admin represents this as an ``<input type="text">`` (a
+single-line input).
+
+``IPAddressField``
+------------------
+
+.. class:: IPAddressField([**options])
+
+An IP address, in string format (e.g. "192.0.2.30"). The admin represents this
+as an ``<input type="text">`` (a single-line input).
+
+``NullBooleanField``
+--------------------
+
+.. class:: NullBooleanField([**options])
+
+Like a :class:`BooleanField`, but allows ``NULL`` as one of the options. Use
+this instead of a :class:`BooleanField` with ``null=True``. The admin represents
+this as a ``<select>`` box with "Unknown", "Yes" and "No" choices.
+
+``PhoneNumberField``
+--------------------
+
+.. class:: PhoneNumberField([**options])
+
+A :class:`CharField` that checks that the value is a valid U.S.A.-style phone
+number (in the format ``XXX-XXX-XXXX``).
+
+``PositiveIntegerField``
+------------------------
+
+.. class:: PositiveIntegerField([**options])
+
+Like an :class:`IntegerField`, but must be positive.
+
+``PositiveSmallIntegerField``
+-----------------------------
+
+.. class:: PositiveIntegerField([**options])
+
+Like a :class:`PositiveIntegerField`, but only allows values under a certain
+(database-dependent) point.
+
+``SlugField``
+-------------
+
+.. class:: SlugField([max_length=50, **options])
+
+:term:`Slug` is a newspaper term. A slug is a short label for something,
+containing only letters, numbers, underscores or hyphens. They're generally used
+in URLs.
+
+Like a CharField, you can specify :attr:`~CharField.max_length`. If
+:attr:`~CharField.max_length` is not specified, Django will use a default length
+of 50.
+
+Implies setting :attr:`Field.db_index` to ``True``.
+
+``SmallIntegerField``
+---------------------
+
+.. class:: SmallIntegerField([**options])
+
+Like an :class:`IntegerField`, but only allows values under a certain
+(database-dependent) point.
+
+``TextField``
+-------------
+
+.. class:: TextField([**options])
+
+A large text field. The admin represents this as a ``<textarea>`` (a multi-line
+input).
+
+``TimeField``
+-------------
+
+.. class:: TimeField([auto_now=False, auto_now_add=False, **options])
+
+A time. Accepts the same auto-population options as :class:`DateField` and
+:class:`DateTimeField`. The admin represents this as an ``<input type="text">``
+with some JavaScript shortcuts.
+
+``URLField``
+------------
+
+.. class:: URLField([verify_exists=True, max_length=200, **options])
+
+A :class:`CharField` for a URL. Has one extra optional argument:
+
+.. attribute:: URLField.verify_exists
+
+    If ``True`` (the default), the URL given will be checked for existence
+    (i.e., the URL actually loads and doesn't give a 404 response).
+
+The admin represents this as an ``<input type="text">`` (a single-line input).
+
+Like all ::class:`CharField` subclasses, :class:`URLField` takes the optional
+:attr:`~CharField.max_length`argument. If you don't specify
+:attr:`~CharField.max_length`, a default of 200 is used.
+
+``USStateField``
+----------------
+
+.. class:: USStateField([**options])
+
+A two-letter U.S. state abbreviation. The admin represents this as an ``<input
+type="text">`` (a single-line input).
+
+``XMLField``
+------------
+
+.. class:: XMLField(schema_path=None, [**options])
+
+A :class:`TextField` that checks that the value is valid XML that matches a
+given schema. Takes one required argument:
+
+.. attribute:: schema_path
+
+    The filesystem path to a RelaxNG_ schema against which to validate the
+    field.
+
+.. _RelaxNG: http://www.relaxng.org/
+
+Relationship fields
+===================
+
+.. module:: django.db.models.fields.related
+   :synopsis: Related field types
+   
+.. currentmodule:: django.db.models
+
+Django also defines a set of fields that represent relations.
+
+.. _ref-foreignkey:
+
+``ForeignKey``
+--------------
+
+.. class:: ForeignKey(othermodel, [**options])
+
+A many-to-one relationship. Requires a positional argument: the class to which
+the model is related. 
+
+.. _recursive-relationships:
+
+To create a recursive relationship -- an object that has a many-to-one
+relationship with itself -- use ``models.ForeignKey('self')``.
+
+.. _lazy-relationships:
+
+If you need to create a relationship on a model that has not yet been defined,
+you can use the name of the model, rather than the model object itself::
+
+    class Car(models.Model):
+        manufacturer = models.ForeignKey('Manufacturer')
+        # ...
+
+    class Manufacturer(models.Model):
+        # ...
+
+Note, however, that this only refers to models in the same ``models.py`` file --
+you cannot use a string to reference a model defined in another application or
+imported from elsewhere.
+
+**New in Django development version:** To refer to models defined in another
+application, you must instead explicitly specify the application label. For
+example, if the ``Manufacturer`` model above is defined in another application
+called ``production``, you'd need to use::
+
+    class Car(models.Model):
+        manufacturer = models.ForeignKey('production.Manufacturer')
+
+Behind the scenes, Django appends ``"_id"`` to the field name to create its
+database column name. In the above example, the database table for the ``Car``
+model will have a ``manufacturer_id`` column. (You can change this explicitly by
+specifying :attr:`~Field.db_column`) However, your code should never have to
+deal with the database column name, unless you write custom SQL. You'll always
+deal with the field names of your model object.
+
+.. _foreign-key-arguments:
+
+:class:`ForeignKey` accepts an extra set of arguments -- all optional -- that
+define the details of how the relation works.
+
+.. attribute:: ForeignKey.limit_choices_to
+
+    A dictionary of lookup arguments and values (see :ref:`topics-db-queries`)
+    that limit the available admin choices for this object. Use this with
+    functions from the Python ``datetime`` module to limit choices of objects by
+    date. For example::
+
+        limit_choices_to = {'pub_date__lte': datetime.now}
+
+    only allows the choice of related objects with a ``pub_date`` before the
+    current date/time to be chosen.
+     
+    Instead of a dictionary this can also be a :class:`~django.db.models.Q`
+    object (an object with a :meth:`get_sql` method) for more complex queries.
+   
+    ``limit_choices_to`` has no effect on the inline FormSets that are created
+    to display related objects in the admin.
+   
+.. attribute:: ForeignKey.related_name
+
+    The name to use for the relation from the related object back to this one.
+    See the :ref:`related objects documentation <backwards-related-objects>` for
+    a full explanation and example.
+
+.. attribute:: ForeignKey.to_field
+
+    The field on the related object that the relation is to. By default, Django
+    uses the primary key of the related object.
+
+.. _ref-manytomany:
+
+``ManyToManyField``
+-------------------
+
+.. class:: ManyToManyField(othermodel, [**options])
+
+A many-to-many relationship. Requires a positional argument: the class to which
+the model is related. This works exactly the same as it does for
+:class:`ForeignKey`, including all the options regarding :ref:`recursive
+<recursive-relationships>` and :ref:`lazy <lazy-relationships>` relationships.
+
+Behind the scenes, Django creates an intermediary join table to represent the
+many-to-many relationship. By default, this table name is generated using the
+names of the two tables being joined. Since some databases don't support table
+names above a certain length (often 32 characters), these table names will be
+automatically truncated to 32 characters and a uniqueness hash will be used.
+This means you might see table names like ``author_books_9cdf4``; this is
+perfectly normal. You can manually provide the name of the join table using
+the :attr:`~ManyToManyField.db_table` option.
+
+.. _manytomany-arguments:
+
+:class:`ManyToManyField` accepts an extra set of arguments -- all optional --
+that control how the relationship functions.
+
+.. attribute:: ManyToManyField.related_name
+
+    Same as :attr:`ForeignKey.related_name`.
+    
+.. attribute:: ManyToManyFields.limit_choices_to
+
+    Same as :attr:`ForeignKey.limit_choices_to`.
+    
+    ``limit_choices_to`` has no effect when used on a ``ManyToManyField`` with
+    an intermediate table.
+
+.. attribute:: ManyToManyFields.symmetrical
+
+    Only used in the definition of ManyToManyFields on self. Consider the
+    following model::
+
+        class Person(models.Model):
+            friends = models.ManyToManyField("self")
+         
+    When Django processes this model, it identifies that it has a
+    :class:`ManyToManyField` on itself, and as a result, it doesn't add a
+    ``person_set`` attribute to the ``Person`` class. Instead, the
+    :class:`ManyToManyField` is assumed to be symmetrical -- that is, if I am
+    your friend, then you are my friend.
+    
+    If you do not want symmetry in many-to-many relationships with ``self``, set
+    :attr:`~ManyToManyField.symmetrical` to ``False``. This will force Django to
+    add the descriptor for the reverse relationship, allowing
+    :class:`ManyToManyField` relationships to be non-symmetrical.
+    
+.. attribute:: ManyToManyField.db_table
+
+    The name of the table to create for storing the many-to-many data. If this
+    is not provided, Django will assume a default name based upon the names of
+    the two tables being joined.
+
+``OneToOneField``
+-----------------
+
+.. class:: OneToOneField(othermodel, [**options])
+
+The semantics of one-to-one relationships will be changing soon, so we don't
+recommend you use them. If that doesn't scare you away, however,
+:class:`OneToOneField` takes the same options that :class:`ForeignKey` does,
+except for the various :attr:`~ForeignKey.edit_inline`-related options.
diff --git a/docs/ref/models/index.txt b/docs/ref/models/index.txt
new file mode 100644
index 0000000000..0e0510d707
--- /dev/null
+++ b/docs/ref/models/index.txt
@@ -0,0 +1,15 @@
+.. _ref-models-index:
+
+Models
+======
+
+Model API reference. For introductory material, see :ref:`topics-db-models`.
+
+.. toctree::
+   :maxdepth: 1
+   
+   fields
+   relations
+   options
+   instances
+   querysets
diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt
new file mode 100644
index 0000000000..404d473629
--- /dev/null
+++ b/docs/ref/models/instances.txt
@@ -0,0 +1,430 @@
+.. _ref-models-instances:
+
+========================
+Model instance reference
+========================
+
+.. currentmodule:: django.db.models
+   
+This document describes the details of the ``Model`` API. It builds on the
+material presented in the :ref:`model <topics-db-models>` and `database query
+<topics-db-queries>` guides, so you'll probably want to read and understand
+those documents before reading this one.
+
+Throughout this reference we'll use the :ref:`example weblog models
+<queryset-model-example>` presented in the :ref:`database query guide
+<topics-db-queries>`.
+
+Creating objects
+================
+
+To create a new instance of a model, just instantiate it like any other Python class:
+
+.. class:: Model(**kwargs)
+
+The keyword arguments to are simply the names of the fields you've defined on
+your model. Note that instantiating a model in no way touches your database; for
+that, you need to ``save()``.
+
+Saving objects
+==============
+
+To save an object back to the database, call ``save()``:
+
+.. method:: Model.save([raw=False])
+
+Of course, there's some subtleties; see the sections below.
+
+Auto-incrementing primary keys
+------------------------------
+
+If a model has an ``AutoField`` -- an auto-incrementing primary key -- then
+that auto-incremented value will be calculated and saved as an attribute on
+your object the first time you call ``save()``::
+
+    >>> b2 = Blog(name='Cheddar Talk', tagline='Thoughts on cheese.')
+    >>> b2.id     # Returns None, because b doesn't have an ID yet.
+    >>> b2.save()
+    >>> b2.id     # Returns the ID of your new object.
+
+There's no way to tell what the value of an ID will be before you call
+``save()``, because that value is calculated by your database, not by Django.
+
+(For convenience, each model has an ``AutoField`` named ``id`` by default
+unless you explicitly specify ``primary_key=True`` on a field. See the
+documentation for ``AutoField`` for more details.
+
+The ``pk`` property
+~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version**
+
+.. attribute:: Model.pk
+
+Regardless of whether you define a primary key field yourself, or let Django
+supply one for you, each model will have a property called ``pk``. It behaves
+like a normal attribute on the model, but is actually an alias for whichever
+attribute is the primary key field for the model. You can read and set this
+value, just as you would for any other attribute, and it will update the
+correct field in the model.
+
+Explicitly specifying auto-primary-key values
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If a model has an ``AutoField`` but you want to define a new object's ID
+explicitly when saving, just define it explicitly before saving, rather than
+relying on the auto-assignment of the ID::
+
+    >>> b3 = Blog(id=3, name='Cheddar Talk', tagline='Thoughts on cheese.')
+    >>> b3.id     # Returns 3.
+    >>> b3.save()
+    >>> b3.id     # Returns 3.
+
+If you assign auto-primary-key values manually, make sure not to use an
+already-existing primary-key value! If you create a new object with an explicit
+primary-key value that already exists in the database, Django will assume you're
+changing the existing record rather than creating a new one.
+
+Given the above ``'Cheddar Talk'`` blog example, this example would override the
+previous record in the database::
+
+    b4 = Blog(id=3, name='Not Cheddar', tagline='Anything but cheese.')
+    b4.save()  # Overrides the previous blog with ID=3!
+
+See `How Django knows to UPDATE vs. INSERT`_, below, for the reason this
+happens.
+
+Explicitly specifying auto-primary-key values is mostly useful for bulk-saving
+objects, when you're confident you won't have primary-key collision.
+
+What happens when you save?
+---------------------------
+
+When you save an object, Django performs the following steps:
+
+    1. **Emit a ``pre_save`` signal.** This provides a notification that
+       an object is about to be saved. You can register a listener that
+       will be invoked whenever this signal is emitted. (These signals are
+       not yet documented.)
+
+    2. **Pre-process the data.** Each field on the object is asked to
+       perform any automated data modification that the field may need
+       to perform.
+
+       Most fields do *no* pre-processing -- the field data is kept as-is.
+       Pre-processing is only used on fields that have special behavior.
+       For example, if your model has a ``DateField`` with ``auto_now=True``,
+       the pre-save phase will alter the data in the object to ensure that
+       the date field contains the current date stamp. (Our documentation
+       doesn't yet include a list of all the fields with this "special
+       behavior.")
+
+    3. **Prepare the data for the database.** Each field is asked to provide
+       its current value in a data type that can be written to the database.
+
+       Most fields require *no* data preparation. Simple data types, such as
+       integers and strings, are 'ready to write' as a Python object. However,
+       more complex data types often require some modification.
+
+       For example, ``DateFields`` use a Python ``datetime`` object to store
+       data. Databases don't store ``datetime`` objects, so the field value
+       must be converted into an ISO-compliant date string for insertion
+       into the database.
+
+    4. **Insert the data into the database.** The pre-processed, prepared
+       data is then composed into an SQL statement for insertion into the
+       database.
+
+    5. **Emit a ``post_save`` signal.** As with the ``pre_save`` signal, this
+       is used to provide notification that an object has been successfully
+       saved. (These signals are not yet documented.)
+
+Raw saves
+~~~~~~~~~
+
+**New in Django development version**
+
+The pre-processing step (#2 in the previous section) is useful, but it modifies
+the data stored in a field. This can cause problems if you're relying upon the
+data you provide being used as-is.
+
+For example, if you're setting up conditions for a test, you'll want the test
+conditions to be repeatable. If pre-processing is performed, the data used
+to specify test conditions may be modified, changing the conditions for the
+test each time the test is run.
+
+In cases such as this, you need to prevent pre-processing from being performed
+when you save an object. To do this, you can invoke a **raw save** by passing
+``raw=True`` as an argument to the ``save()`` method::
+
+    b4.save(raw=True) # Save object, but do no pre-processing
+
+A raw save skips the usual data pre-processing that is performed during the
+save. All other steps in the save (pre-save signal, data preparation, data
+insertion, and post-save signal) are performed as normal.
+
+.. admonition:: When to use a raw save
+
+    Generally speaking, you shouldn't need to use a raw save. Disabling field
+    pre-processing is an extraordinary measure that should only be required
+    in extraordinary circumstances, such as setting up reliable test
+    conditions.
+
+
+How Django knows to UPDATE vs. INSERT
+-------------------------------------
+
+You may have noticed Django database objects use the same ``save()`` method
+for creating and changing objects. Django abstracts the need to use ``INSERT``
+or ``UPDATE`` SQL statements. Specifically, when you call ``save()``, Django
+follows this algorithm:
+
+    * If the object's primary key attribute is set to a value that evaluates to
+      ``True`` (i.e., a value other than ``None`` or the empty string), Django
+      executes a ``SELECT`` query to determine whether a record with the given
+      primary key already exists.
+    * If the record with the given primary key does already exist, Django
+      executes an ``UPDATE`` query.
+    * If the object's primary key attribute is *not* set, or if it's set but a
+      record doesn't exist, Django executes an ``INSERT``.
+
+The one gotcha here is that you should be careful not to specify a primary-key
+value explicitly when saving new objects, if you cannot guarantee the
+primary-key value is unused. For more on this nuance, see `Explicitly specifying
+auto-primary-key values`_ above and `Forcing an INSERT or UPDATE`_ below.
+
+Forcing an INSERT or UPDATE
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version**
+
+In some rare circumstances, it's necessary to be able to force the ``save()``
+method to perform an SQL ``INSERT`` and not fall back to doing an ``UPDATE``.
+Or vice-versa: update, if possible, but not insert a new row. In these cases
+you can pass the ``force_insert=True`` or ``force_update=True`` parameters to
+the ``save()`` method. Passing both parameters is an error, since you cannot
+both insert *and* update at the same time.
+
+It should be very rare that you'll need to use these parameters. Django will
+almost always do the right thing and trying to override that will lead to
+errors that are difficult to track down. This feature is for advanced use
+only.
+
+.. _model-instance-methods:
+
+Other model instance methods
+============================
+
+A few object methods have special purposes.
+
+``__str__``
+-----------
+
+.. method:: Model.__str__()
+
+``__str__()`` is a Python "magic method" that defines what should be returned
+if you call ``str()`` on the object. Django uses ``str(obj)`` (or the related
+function, ``unicode(obj)`` -- see below) in a number of places, most notably
+as the value displayed to render an object in the Django admin site and as the
+value inserted into a template when it displays an object. Thus, you should
+always return a nice, human-readable string for the object's ``__str__``.
+Although this isn't required, it's strongly encouraged (see the description of
+``__unicode__``, below, before putting ``__str__`` methods everywhere).
+
+For example::
+
+    class Person(models.Model):
+        first_name = models.CharField(max_length=50)
+        last_name = models.CharField(max_length=50)
+
+        def __str__(self):
+            # Note use of django.utils.encoding.smart_str() here because
+            # first_name and last_name will be unicode strings.
+            return smart_str('%s %s' % (self.first_name, self.last_name))
+
+``__unicode__``
+---------------
+
+.. method:: Model.__unicode__()
+
+The ``__unicode__()`` method is called whenever you call ``unicode()`` on an
+object. Since Django's database backends will return Unicode strings in your
+model's attributes, you would normally want to write a ``__unicode__()``
+method for your model. The example in the previous section could be written
+more simply as::
+
+    class Person(models.Model):
+        first_name = models.CharField(max_length=50)
+        last_name = models.CharField(max_length=50)
+
+        def __unicode__(self):
+            return u'%s %s' % (self.first_name, self.last_name)
+
+If you define a ``__unicode__()`` method on your model and not a ``__str__()``
+method, Django will automatically provide you with a ``__str__()`` that calls
+``__unicode__()`` and then converts the result correctly to a UTF-8 encoded
+string object. This is recommended development practice: define only
+``__unicode__()`` and let Django take care of the conversion to string objects
+when required.
+
+``get_absolute_url``
+--------------------
+
+.. method:: Model.get_absolute_url()
+
+Define a ``get_absolute_url()`` method to tell Django how to calculate the
+URL for an object. For example::
+
+    def get_absolute_url(self):
+        return "/people/%i/" % self.id
+
+Django uses this in its admin interface. If an object defines
+``get_absolute_url()``, the object-editing page will have a "View on site"
+link that will jump you directly to the object's public view, according to
+``get_absolute_url()``.
+
+Also, a couple of other bits of Django, such as the :ref:`syndication feed
+framework <ref-contrib-syndication>`, use ``get_absolute_url()`` as a
+convenience to reward people who've defined the method.
+
+It's good practice to use ``get_absolute_url()`` in templates, instead of
+hard-coding your objects' URLs. For example, this template code is bad::
+
+    <a href="/people/{{ object.id }}/">{{ object.name }}</a>
+
+But this template code is good::
+
+    <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
+
+.. note::
+    The string you return from ``get_absolute_url()`` must contain only ASCII
+    characters (required by the URI spec, `RFC 2396`_) that have been
+    URL-encoded, if necessary. Code and templates using ``get_absolute_url()``
+    should be able to use the result directly without needing to do any
+    further processing. You may wish to use the
+    ``django.utils.encoding.iri_to_uri()`` function to help with this if you
+    are using unicode strings a lot.
+
+.. _RFC 2396: http://www.ietf.org/rfc/rfc2396.txt
+
+The ``permalink`` decorator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The problem with the way we wrote ``get_absolute_url()`` above is that it
+slightly violates the DRY principle: the URL for this object is defined both
+in the URLConf file and in the model.
+
+You can further decouple your models from the URLconf using the ``permalink``
+decorator:
+
+.. function:: django.db.models.permalink()
+
+This decorator is passed the view function, a list of positional parameters and
+(optionally) a dictionary of named parameters. Django then works out the correct
+full URL path using the URLconf, substituting the parameters you have given into
+the URL. For example, if your URLconf contained a line such as::
+
+    (r'^people/(\d+)/$', 'people.views.details'),
+
+...your model could have a ``get_absolute_url`` method that looked like this::
+
+    from django.db import models
+
+    @models.permalink
+    def get_absolute_url(self):
+        return ('people.views.details', [str(self.id)])
+
+Similarly, if you had a URLconf entry that looked like::
+
+    (r'/archive/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', archive_view)
+
+...you could reference this using ``permalink()`` as follows::
+
+    @models.permalink
+    def get_absolute_url(self):
+        return ('archive_view', (), {
+            'year': self.created.year,
+            'month': self.created.month,
+            'day': self.created.day})
+
+Notice that we specify an empty sequence for the second parameter in this case,
+because we only want to pass keyword parameters, not positional ones.
+
+In this way, you're tying the model's absolute URL to the view that is used
+to display it, without repeating the URL information anywhere. You can still
+use the ``get_absolute_url`` method in templates, as before.
+
+In some cases, such as the use of generic views or the re-use of
+custom views for multiple models, specifying the view function may
+confuse the reverse URL matcher (because multiple patterns point to
+the same view).
+
+For that problem, Django has **named URL patterns**. Using a named
+URL 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 *
+
+    url(r'^people/(\d+)/$',
+        'django.views.generic.list_detail.object_detail',
+        name='people_view'),
+
+...and then using that name to perform the reverse URL resolution instead
+of the view name::
+
+    from django.db.models import permalink
+
+    def get_absolute_url(self):
+        return ('people_view', [str(self.id)])
+    get_absolute_url = permalink(get_absolute_url)
+
+More details on named URL patterns are in the :ref:`URL dispatch documentation
+<topics-http-urls>`.
+
+Extra instance methods
+======================
+
+In addition to ``save()``, ``delete()``, a model object might get any or all
+of the following methods:
+
+get_FOO_display()
+-----------------
+
+For every field that has ``choices`` set, the object will have a
+``get_FOO_display()`` method, where ``FOO`` is the name of the field. This
+method returns the "human-readable" value of the field. For example, in the
+following model::
+
+    GENDER_CHOICES = (
+        ('M', 'Male'),
+        ('F', 'Female'),
+    )
+    class Person(models.Model):
+        name = models.CharField(max_length=20)
+        gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
+
+...each ``Person`` instance will have a ``get_gender_display()`` method. Example::
+
+    >>> p = Person(name='John', gender='M')
+    >>> p.save()
+    >>> p.gender
+    'M'
+    >>> p.get_gender_display()
+    'Male'
+
+get_next_by_FOO(\**kwargs) and get_previous_by_FOO(\**kwargs)
+-------------------------------------------------------------
+
+For every ``DateField`` and ``DateTimeField`` that does not have ``null=True``,
+the object will have ``get_next_by_FOO()`` and ``get_previous_by_FOO()``
+methods, where ``FOO`` is the name of the field. This returns the next and
+previous object with respect to the date field, raising the appropriate
+``DoesNotExist`` exception when appropriate.
+
+Both methods accept optional keyword arguments, which should be in the format
+described in :ref:`Field lookups <field-lookups>`.
+
+Note that in the case of identical date values, these methods will use the ID
+as a fallback check. This guarantees that no records are skipped or duplicated.
diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt
new file mode 100644
index 0000000000..34ec7a19ed
--- /dev/null
+++ b/docs/ref/models/options.txt
@@ -0,0 +1,175 @@
+.. _ref-models-options:
+
+======================
+Model ``Meta`` options
+======================
+
+This document explains all the possible :ref:`metadata options <meta-options>` that you can give your model in its internal ``class Meta``.
+
+Available ``Meta`` options
+==========================
+
+.. currentmodule:: django.db.models
+
+``db_table``
+------------
+
+.. attribute:: Options.db_table
+
+The name of the database table to use for the model::
+
+    db_table = 'music_album'
+
+.. _table-names:
+
+Table names
+~~~~~~~~~~~
+
+To save you time, Django automatically derives the name of the database table
+from the name of your model class and the app that contains it. A model's
+database table name is constructed by joining the model's "app label" -- the
+name you used in ``manage.py startapp`` -- to the model's class name, with an
+underscore between them.
+
+For example, if you have an app ``bookstore`` (as created by
+``manage.py startapp bookstore``), a model defined as ``class Book`` will have
+a database table named ``bookstore_book``.
+
+To override the database table name, use the ``db_table`` parameter in
+``class Meta``.
+
+If your database table name is an SQL reserved word, or contains characters that
+aren't allowed in Python variable names -- notably, the hyphen -- that's OK.
+Django quotes column and table names behind the scenes.
+
+``db_tablespace``
+-----------------
+
+.. attribute:: Options.db_tablespace
+
+**New in Django development version**
+
+The name of the database tablespace to use for the model. If the backend doesn't
+support tablespaces, this option is ignored.
+
+``get_latest_by``
+-----------------
+
+.. attribute:: Options.get_latest_by
+
+The name of a :class:`DateField` or :class:`DateTimeField` in the model. This
+specifies the default field to use in your model :class:`Manager`'s
+:class:`~QuerySet.latest` method.
+
+Example::
+
+    get_latest_by = "order_date"
+
+See the docs for :meth:`~django.db.models.QuerySet.latest` for more.
+
+``order_with_respect_to``
+-------------------------
+
+.. attribute:: Options.order_with_respect_to
+
+Marks this object as "orderable" with respect to the given field. This is almost
+always used with related objects to allow them to be ordered with respect to a
+parent object. For example, if an ``Answer`` relates to a ``Question`` object,
+and a question has more than one answer, and the order of answers matters, you'd
+do this::
+
+    class Answer(models.Model):
+        question = models.ForeignKey(Question)
+        # ...
+
+        class Meta:
+            order_with_respect_to = 'question'
+
+``ordering``
+------------
+
+.. attribute:: Options.ordering
+
+The default ordering for the object, for use when obtaining lists of objects::
+
+    ordering = ['-order_date']
+
+This is a tuple or list of strings. Each string is a field name with an optional
+"-" prefix, which indicates descending order. Fields without a leading "-" will
+be ordered ascending. Use the string "?" to order randomly.
+
+.. note:: 
+
+    Regardless of how many fields are in :attr:`~Options.ordering`, the admin
+    site uses only the first field.
+
+For example, to order by a ``pub_date`` field ascending, use this::
+
+    ordering = ['pub_date']
+
+To order by ``pub_date`` descending, use this::
+
+    ordering = ['-pub_date']
+
+To order by ``pub_date`` descending, then by ``author`` ascending, use this::
+
+    ordering = ['-pub_date', 'author']
+
+``permissions``
+---------------
+
+.. attribute:: Options.permissions
+
+Extra permissions to enter into the permissions table when creating this object.
+Add, delete and change permissions are automatically created for each object
+that has ``admin`` set. This example specifies an extra permission,
+``can_deliver_pizzas``::
+
+    permissions = (("can_deliver_pizzas", "Can deliver pizzas"),)
+
+This is a list or tuple of 2-tuples in the format ``(permission_code,
+human_readable_permission_name)``.
+
+``unique_together``
+-------------------
+
+.. attribute:: Options.unique_together
+
+Sets of field names that, taken together, must be unique::
+
+    unique_together = (("driver", "restaurant"),)
+
+This is a list of lists of fields that must be unique when considered together.
+It's used in the Django admin and is enforced at the database level (i.e., the
+appropriate ``UNIQUE`` statements are included in the ``CREATE TABLE``
+statement).
+
+**New in Django development version**
+
+For convenience, unique_together can be a single list when dealing with a single
+set of fields::
+
+    unique_together = ("driver", "restaurant")
+
+``verbose_name``
+----------------
+
+.. attribute:: Options.verbose_name
+
+A human-readable name for the object, singular::
+
+    verbose_name = "pizza"
+
+If this isn't given, Django will use a munged version of the class name:
+``CamelCase`` becomes ``camel case``.
+
+``verbose_name_plural``
+-----------------------
+
+.. attribute:: Options.verbose_name_plural
+
+The plural name for the object::
+
+    verbose_name_plural = "stories"
+
+If this isn't given, Django will use :attr:`~Options.verbose_name` + ``"s"``.
diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt
new file mode 100644
index 0000000000..b5de2e3aa2
--- /dev/null
+++ b/docs/ref/models/querysets.txt
@@ -0,0 +1,1060 @@
+.. _ref-models-querysets:
+
+======================
+QuerySet API reference
+======================
+
+.. currentmodule:: django.db.models
+
+This document describes the details of the ``QuerySet`` API. It builds on the
+material presented in the :ref:`model <topics-db-models>` and `database query
+<topics-db-queries>` guides, so you'll probably want to read and understand
+those documents before reading this one.
+
+Throughout this reference we'll use the :ref:`example weblog models
+<queryset-model-example>` presented in the :ref:`database query guide
+<topics-db-queries>`.
+
+.. _when-querysets-are-evaluated:
+
+When QuerySets are evaluated
+============================
+
+Internally, a ``QuerySet`` can be constructed, filter, sliced, and generally
+passed around without actually hitting the database. No database activity
+actually occurs until you do something to evaluate the queryset.
+
+You can evaluate a ``QuerySet`` in the following ways:
+
+    * **Iteration.** A ``QuerySet`` is iterable, and it executes its database
+      query the first time you iterate over it. For example, this will print
+      the headline of all entries in the database::
+
+          for e in Entry.objects.all():
+              print e.headline
+
+    * **Slicing.** As explained in :ref:`limiting-querysets`, a ``QuerySet`` can
+      be sliced, using Python's array-slicing syntax. Usually slicing a
+      ``QuerySet`` returns another (unevaluated )``QuerySet``, but Django will
+      execute the database query if you use the "step" parameter of slice
+      syntax.
+
+    * **repr().** A ``QuerySet`` is evaluated when you call ``repr()`` on it.
+      This is for convenience in the Python interactive interpreter, so you can
+      immediately see your results when using the API interactively.
+
+    * **len().** A ``QuerySet`` is evaluated when you call ``len()`` on it.
+      This, as you might expect, returns the length of the result list.
+
+      Note: *Don't* use ``len()`` on ``QuerySet``\s if all you want to do is
+      determine the number of records in the set. It's much more efficient to
+      handle a count at the database level, using SQL's ``SELECT COUNT(*)``,
+      and Django provides a ``count()`` method for precisely this reason. See
+      ``count()`` below.
+
+    * **list().** Force evaluation of a ``QuerySet`` by calling ``list()`` on
+      it. For example::
+
+          entry_list = list(Entry.objects.all())
+
+      Be warned, though, that this could have a large memory overhead, because
+      Django will load each element of the list into memory. In contrast,
+      iterating over a ``QuerySet`` will take advantage of your database to
+      load data and instantiate objects only as you need them.
+
+.. _queryset-api:
+
+QuerySet API
+============
+
+Though you usually won't create one manually -- you'll go through a :class:`Manager` -- here's the formal declaration of a ``QuerySet``:
+
+.. class:: QuerySet([model=None])
+
+Usually when you'll interact with a ``QuerySet`` you'll use it by :ref:`chaining
+filters <chaining-filters>`. To make this work, most ``QuerySet`` methods return new querysets.
+
+QuerySet methods that return new QuerySets
+------------------------------------------
+
+Django provides a range of ``QuerySet`` refinement methods that modify either
+the types of results returned by the ``QuerySet`` or the way its SQL query is
+executed.
+
+``filter(**kwargs)``
+~~~~~~~~~~~~~~~~~~~~
+
+Returns a new ``QuerySet`` containing objects that match the given lookup
+parameters.
+
+The lookup parameters (``**kwargs``) should be in the format described in
+`Field lookups`_ below. Multiple parameters are joined via ``AND`` in the
+underlying SQL statement.
+
+``exclude(**kwargs)``
+~~~~~~~~~~~~~~~~~~~~~
+
+Returns a new ``QuerySet`` containing objects that do *not* match the given
+lookup parameters.
+
+The lookup parameters (``**kwargs``) should be in the format described in
+`Field lookups`_ below. Multiple parameters are joined via ``AND`` in the
+underlying SQL statement, and the whole thing is enclosed in a ``NOT()``.
+
+This example excludes all entries whose ``pub_date`` is later than 2005-1-3
+AND whose ``headline`` is "Hello"::
+
+    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3), headline='Hello')
+
+In SQL terms, that evaluates to::
+
+    SELECT ...
+    WHERE NOT (pub_date > '2005-1-3' AND headline = 'Hello')
+
+This example excludes all entries whose ``pub_date`` is later than 2005-1-3
+OR whose headline is "Hello"::
+
+    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3)).exclude(headline='Hello')
+
+In SQL terms, that evaluates to::
+
+    SELECT ...
+    WHERE NOT pub_date > '2005-1-3'
+    AND NOT headline = 'Hello'
+
+Note the second example is more restrictive.
+
+``order_by(*fields)``
+~~~~~~~~~~~~~~~~~~~~~
+
+By default, results returned by a ``QuerySet`` are ordered by the ordering
+tuple given by the ``ordering`` option in the model's ``Meta``. You can
+override this on a per-``QuerySet`` basis by using the ``order_by`` method.
+
+Example::
+
+    Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')
+
+The result above will be ordered by ``pub_date`` descending, then by
+``headline`` ascending. The negative sign in front of ``"-pub_date"`` indicates
+*descending* order. Ascending order is implied. To order randomly, use ``"?"``,
+like so::
+
+    Entry.objects.order_by('?')
+
+Note: ``order_by('?')`` queries may be expensive and slow, depending on the
+database backend you're using.
+
+To order by a field in a different table, add the other table's name and a dot,
+like so::
+
+    Entry.objects.order_by('blogs_blog.name', 'headline')
+
+There's no way to specify whether ordering should be case sensitive. With
+respect to case-sensitivity, Django will order results however your database
+backend normally orders them.
+
+Also, note that ``reverse()`` should generally only be called on a
+``QuerySet`` which has a defined ordering (e.g., when querying against
+a model which defines a default ordering, or when using
+``order_by()``). If no such ordering is defined for a given
+``QuerySet``, calling ``reverse()`` on it has no real effect (the
+ordering was undefined prior to calling ``reverse()``, and will remain
+undefined afterward).
+
+
+``distinct()``
+~~~~~~~~~~~~~~
+
+Returns a new ``QuerySet`` that uses ``SELECT DISTINCT`` in its SQL query. This
+eliminates duplicate rows from the query results.
+
+By default, a ``QuerySet`` will not eliminate duplicate rows. In practice, this
+is rarely a problem, because simple queries such as ``Blog.objects.all()``
+don't introduce the possibility of duplicate result rows.
+
+However, if your query spans multiple tables, it's possible to get duplicate
+results when a ``QuerySet`` is evaluated. That's when you'd use ``distinct()``.
+
+``values(*fields)``
+~~~~~~~~~~~~~~~~~~~
+
+Returns a ``ValuesQuerySet`` -- a ``QuerySet`` that evaluates to a list of
+dictionaries instead of model-instance objects.
+
+Each of those dictionaries represents an object, with the keys corresponding to
+the attribute names of model objects.
+
+This example compares the dictionaries of ``values()`` with the normal model
+objects::
+
+    # This list contains a Blog object.
+    >>> Blog.objects.filter(name__startswith='Beatles')
+    [Beatles Blog]
+
+    # This list contains a dictionary.
+    >>> Blog.objects.filter(name__startswith='Beatles').values()
+    [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
+
+``values()`` takes optional positional arguments, ``*fields``, which specify
+field names to which the ``SELECT`` should be limited. If you specify the
+fields, each dictionary will contain only the field keys/values for the fields
+you specify. If you don't specify the fields, each dictionary will contain a
+key and value for every field in the database table.
+
+Example::
+
+    >>> Blog.objects.values()
+    [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}],
+    >>> Blog.objects.values('id', 'name')
+    [{'id': 1, 'name': 'Beatles Blog'}]
+
+A ``ValuesQuerySet`` is useful when you know you're only going to need values
+from a small number of the available fields and you won't need the
+functionality of a model instance object. It's more efficient to select only
+the fields you need to use.
+
+Finally, note a ``ValuesQuerySet`` is a subclass of ``QuerySet``, so it has all
+methods of ``QuerySet``. You can call ``filter()`` on it, or ``order_by()``, or
+whatever. Yes, that means these two calls are identical::
+
+    Blog.objects.values().order_by('id')
+    Blog.objects.order_by('id').values()
+
+The people who made Django prefer to put all the SQL-affecting methods first,
+followed (optionally) by any output-affecting methods (such as ``values()``),
+but it doesn't really matter. This is your chance to really flaunt your
+individualism.
+
+``dates(field, kind, order='ASC')``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Returns a ``DateQuerySet`` -- a ``QuerySet`` that evaluates to a list of
+``datetime.datetime`` objects representing all available dates of a particular
+kind within the contents of the ``QuerySet``.
+
+``field`` should be the name of a ``DateField`` or ``DateTimeField`` of your
+model.
+
+``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each
+``datetime.datetime`` object in the result list is "truncated" to the given
+``type``.
+
+    * ``"year"`` returns a list of all distinct year values for the field.
+    * ``"month"`` returns a list of all distinct year/month values for the field.
+    * ``"day"`` returns a list of all distinct year/month/day values for the field.
+
+``order``, which defaults to ``'ASC'``, should be either ``'ASC'`` or
+``'DESC'``. This specifies how to order the results.
+
+Examples::
+
+    >>> Entry.objects.dates('pub_date', 'year')
+    [datetime.datetime(2005, 1, 1)]
+    >>> Entry.objects.dates('pub_date', 'month')
+    [datetime.datetime(2005, 2, 1), datetime.datetime(2005, 3, 1)]
+    >>> Entry.objects.dates('pub_date', 'day')
+    [datetime.datetime(2005, 2, 20), datetime.datetime(2005, 3, 20)]
+    >>> Entry.objects.dates('pub_date', 'day', order='DESC')
+    [datetime.datetime(2005, 3, 20), datetime.datetime(2005, 2, 20)]
+    >>> Entry.objects.filter(headline__contains='Lennon').dates('pub_date', 'day')
+    [datetime.datetime(2005, 3, 20)]
+
+``none()``
+~~~~~~~~~~
+
+**New in Django development version**
+
+Returns an ``EmptyQuerySet`` -- a ``QuerySet`` that always evaluates to
+an empty list. This can be used in cases where you know that you should
+return an empty result set and your caller is expecting a ``QuerySet``
+object (instead of returning an empty list, for example.)
+
+Examples::
+
+    >>> Entry.objects.none()
+    []
+
+.. _select-related:
+
+``select_related()``
+~~~~~~~~~~~~~~~~~~~~
+
+Returns a ``QuerySet`` that will automatically "follow" foreign-key
+relationships, selecting that additional related-object data when it executes
+its query. This is a performance booster which results in (sometimes much)
+larger queries but means later use of foreign-key relationships won't require
+database queries.
+
+The following examples illustrate the difference between plain lookups and
+``select_related()`` lookups. Here's standard lookup::
+
+    # Hits the database.
+    e = Entry.objects.get(id=5)
+
+    # Hits the database again to get the related Blog object.
+    b = e.blog
+
+And here's ``select_related`` lookup::
+
+    # Hits the database.
+    e = Entry.objects.select_related().get(id=5)
+
+    # Doesn't hit the database, because e.blog has been prepopulated
+    # in the previous query.
+    b = e.blog
+
+``select_related()`` follows foreign keys as far as possible. If you have the
+following models::
+
+    class City(models.Model):
+        # ...
+
+    class Person(models.Model):
+        # ...
+        hometown = models.ForeignKey(City)
+
+    class Book(models.Model):
+        # ...
+        author = models.ForeignKey(Person)
+
+...then a call to ``Book.objects.select_related().get(id=4)`` will cache the
+related ``Person`` *and* the related ``City``::
+
+    b = Book.objects.select_related().get(id=4)
+    p = b.author         # Doesn't hit the database.
+    c = p.hometown       # Doesn't hit the database.
+
+    b = Book.objects.get(id=4) # No select_related() in this example.
+    p = b.author         # Hits the database.
+    c = p.hometown       # Hits the database.
+
+Note that ``select_related()`` does not follow foreign keys that have
+``null=True``.
+
+Usually, using ``select_related()`` can vastly improve performance because your
+app can avoid many database calls. However, in situations with deeply nested
+sets of relationships ``select_related()`` can sometimes end up following "too
+many" relations, and can generate queries so large that they end up being slow.
+
+In these situations, you can use the ``depth`` argument to ``select_related()``
+to control how many "levels" of relations ``select_related()`` will actually
+follow::
+
+    b = Book.objects.select_related(depth=1).get(id=4)
+    p = b.author         # Doesn't hit the database.
+    c = p.hometown       # Requires a database call.
+
+The ``depth`` argument is new in the Django development version.
+
+``extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Sometimes, the Django query syntax by itself can't easily express a complex
+``WHERE`` clause. For these edge cases, Django provides the ``extra()``
+``QuerySet`` modifier -- a hook for injecting specific clauses into the SQL
+generated by a ``QuerySet``.
+
+By definition, these extra lookups may not be portable to different database
+engines (because you're explicitly writing SQL code) and violate the DRY
+principle, so you should avoid them if possible.
+
+Specify one or more of ``params``, ``select``, ``where`` or ``tables``. None
+of the arguments is required, but you should use at least one of them.
+
+``select``
+    The ``select`` argument lets you put extra fields in the ``SELECT`` clause.
+    It should be a dictionary mapping attribute names to SQL clauses to use to
+    calculate that attribute.
+
+    Example::
+
+        Entry.objects.extra(select={'is_recent': "pub_date > '2006-01-01'"})
+
+    As a result, each ``Entry`` object will have an extra attribute,
+    ``is_recent``, a boolean representing whether the entry's ``pub_date`` is
+    greater than Jan. 1, 2006.
+
+    Django inserts the given SQL snippet directly into the ``SELECT``
+    statement, so the resulting SQL of the above example would be::
+
+        SELECT blog_entry.*, (pub_date > '2006-01-01')
+        FROM blog_entry;
+
+
+    The next example is more advanced; it does a subquery to give each
+    resulting ``Blog`` object an ``entry_count`` attribute, an integer count
+    of associated ``Entry`` objects::
+
+        Blog.objects.extra(
+            select={
+                'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id'
+            },
+        )
+
+    (In this particular case, we're exploiting the fact that the query will
+    already contain the ``blog_blog`` table in its ``FROM`` clause.)
+
+    The resulting SQL of the above example would be::
+
+        SELECT blog_blog.*, (SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id)
+        FROM blog_blog;
+
+    Note that the parenthesis required by most database engines around
+    subqueries are not required in Django's ``select`` clauses. Also note that
+    some database backends, such as some MySQL versions, don't support
+    subqueries.
+
+    **New in Django development version**
+    In some rare cases, you might wish to pass parameters to the SQL fragments
+    in ``extra(select=...)```. For this purpose, use the ``select_params``
+    parameter. Since ``select_params`` is a sequence and the ``select``
+    attribute is a dictionary, some care is required so that the parameters
+    are matched up correctly with the extra select pieces.  In this situation,
+    you should use a ``django.utils.datastructures.SortedDict`` for the
+    ``select`` value, not just a normal Python dictionary.
+
+    This will work, for example::
+
+        Blog.objects.extra(
+            select=SortedDict([('a', '%s'), ('b', '%s')]),
+            select_params=('one', 'two'))
+
+    The only thing to be careful about when using select parameters in
+    ``extra()`` is to avoid using the substring ``"%%s"`` (that's *two*
+    percent characters before the ``s``) in the select strings. Django's
+    tracking of parameters looks for ``%s`` and an escaped ``%`` character
+    like this isn't detected. That will lead to incorrect results.
+
+``where`` / ``tables``
+    You can define explicit SQL ``WHERE`` clauses -- perhaps to perform
+    non-explicit joins -- by using ``where``. You can manually add tables to
+    the SQL ``FROM`` clause by using ``tables``.
+
+    ``where`` and ``tables`` both take a list of strings. All ``where``
+    parameters are "AND"ed to any other search criteria.
+
+    Example::
+
+        Entry.objects.extra(where=['id IN (3, 4, 5, 20)'])
+
+    ...translates (roughly) into the following SQL::
+
+        SELECT * FROM blog_entry WHERE id IN (3, 4, 5, 20);
+
+    Be careful when using the ``tables`` parameter if you're specifying
+    tables that are already used in the query. When you add extra tables
+    via the ``tables`` parameter, Django assumes you want that table included
+    an extra time, if it is already included. That creates a problem,
+    since the table name will then be given an alias. If a table appears
+    multiple times in an SQL statement, the second and subsequent occurrences
+    must use aliases so the database can tell them apart. If you're
+    referring to the extra table you added in the extra ``where`` parameter
+    this is going to cause errors.
+
+    Normally you'll only be adding extra tables that don't already appear in
+    the query. However, if the case outlined above does occur, there are a few
+    solutions. First, see if you can get by without including the extra table
+    and use the one already in the query. If that isn't possible, put your
+    ``extra()`` call at the front of the queryset construction so that your
+    table is the first use of that table. Finally, if all else fails, look at
+    the query produced and rewrite your ``where`` addition to use the alias
+    given to your extra table. The alias will be the same each time you
+    construct the queryset in the same way, so you can rely upon the alias
+    name to not change.
+
+``order_by``
+    If you need to order the resulting queryset using some of the new fields
+    or tables you have included via ``extra()`` use the ``order_by`` parameter
+    to ``extra()`` and pass in a sequence of strings. These strings should
+    either be model fields (as in the normal ``order_by()`` method on
+    querysets), of the form ``table_name.column_name`` or an alias for a column
+    that you specified in the ``select`` parameter to ``extra()``.
+
+    For example::
+
+        q = Entry.objects.extra(select={'is_recent': "pub_date > '2006-01-01'"})
+        q = q.extra(order_by = ['-is_recent'])
+
+    This would sort all the items for which ``is_recent`` is true to the front
+    of the result set (``True`` sorts before ``False`` in a descending
+    ordering).
+
+    This shows, by the way, that you can make multiple calls to
+    ``extra()`` and it will behave as you expect (adding new constraints each
+    time).
+
+``params``
+    The ``where`` parameter described above may use standard Python database
+    string placeholders -- ``'%s'`` to indicate parameters the database engine
+    should automatically quote. The ``params`` argument is a list of any extra
+    parameters to be substituted.
+
+    Example::
+
+        Entry.objects.extra(where=['headline=%s'], params=['Lennon'])
+
+    Always use ``params`` instead of embedding values directly into ``where``
+    because ``params`` will ensure values are quoted correctly according to
+    your particular backend. (For example, quotes will be escaped correctly.)
+
+    Bad::
+
+        Entry.objects.extra(where=["headline='Lennon'"])
+
+    Good::
+
+        Entry.objects.extra(where=['headline=%s'], params=['Lennon'])
+
+**New in Django development version** The ``select_params`` argument to
+``extra()`` is new. Previously, you could attempt to pass parameters for
+``select`` in the ``params`` argument, but it worked very unreliably.
+
+QuerySet methods that do not return QuerySets
+---------------------------------------------
+
+The following ``QuerySet`` methods evaluate the ``QuerySet`` and return
+something *other than* a ``QuerySet``.
+
+These methods do not use a cache (see :ref:`caching-and-querysets`). Rather,
+they query the database each time they're called.
+
+.. _get-kwargs:
+
+``get(**kwargs)``
+~~~~~~~~~~~~~~~~~
+
+Returns the object matching the given lookup parameters, which should be in
+the format described in `Field lookups`_.
+
+``get()`` raises ``AssertionError`` if more than one object was found.
+
+``get()`` raises a ``DoesNotExist`` exception if an object wasn't found for the
+given parameters. The ``DoesNotExist`` exception is an attribute of the model
+class. Example::
+
+    Entry.objects.get(id='foo') # raises Entry.DoesNotExist
+
+The ``DoesNotExist`` exception inherits from
+``django.core.exceptions.ObjectDoesNotExist``, so you can target multiple
+``DoesNotExist`` exceptions. Example::
+
+    from django.core.exceptions import ObjectDoesNotExist
+    try:
+        e = Entry.objects.get(id=3)
+        b = Blog.objects.get(id=1)
+    except ObjectDoesNotExist:
+        print "Either the entry or blog doesn't exist."
+
+``create(**kwargs)``
+~~~~~~~~~~~~~~~~~~~~
+
+A convenience method for creating an object and saving it all in one step.  Thus::
+
+    p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
+
+and::
+
+    p = Person(first_name="Bruce", last_name="Springsteen")
+    p.save()
+
+are equivalent.
+
+``get_or_create(**kwargs)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A convenience method for looking up an object with the given kwargs, creating
+one if necessary.
+
+Returns a tuple of ``(object, created)``, where ``object`` is the retrieved or
+created object and ``created`` is a boolean specifying whether a new object was
+created.
+
+This is meant as a shortcut to boilerplatish code and is mostly useful for
+data-import scripts. For example::
+
+    try:
+        obj = Person.objects.get(first_name='John', last_name='Lennon')
+    except Person.DoesNotExist:
+        obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
+        obj.save()
+
+This pattern gets quite unwieldy as the number of fields in a model goes up.
+The above example can be rewritten using ``get_or_create()`` like so::
+
+    obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon',
+                      defaults={'birthday': date(1940, 10, 9)})
+
+Any keyword arguments passed to ``get_or_create()`` -- *except* an optional one
+called ``defaults`` -- will be used in a ``get()`` call. If an object is found,
+``get_or_create()`` returns a tuple of that object and ``False``. If an object
+is *not* found, ``get_or_create()`` will instantiate and save a new object,
+returning a tuple of the new object and ``True``. The new object will be
+created according to this algorithm::
+
+    defaults = kwargs.pop('defaults', {})
+    params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
+    params.update(defaults)
+    obj = self.model(**params)
+    obj.save()
+
+In English, that means start with any non-``'defaults'`` keyword argument that
+doesn't contain a double underscore (which would indicate a non-exact lookup).
+Then add the contents of ``defaults``, overriding any keys if necessary, and
+use the result as the keyword arguments to the model class.
+
+If you have a field named ``defaults`` and want to use it as an exact lookup in
+``get_or_create()``, just use ``'defaults__exact'``, like so::
+
+    Foo.objects.get_or_create(defaults__exact='bar', defaults={'defaults': 'baz'})
+
+Finally, a word on using ``get_or_create()`` in Django views. As mentioned
+earlier, ``get_or_create()`` is mostly useful in scripts that need to parse
+data and create new records if existing ones aren't available. But if you need
+to use ``get_or_create()`` in a view, please make sure to use it only in
+``POST`` requests unless you have a good reason not to. ``GET`` requests
+shouldn't have any effect on data; use ``POST`` whenever a request to a page
+has a side effect on your data. For more, see `Safe methods`_ in the HTTP spec.
+
+.. _Safe methods: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1
+
+``count()``
+~~~~~~~~~~~
+
+Returns an integer representing the number of objects in the database matching
+the ``QuerySet``. ``count()`` never raises exceptions.
+
+Example::
+
+    # Returns the total number of entries in the database.
+    Entry.objects.count()
+
+    # Returns the number of entries whose headline contains 'Lennon'
+    Entry.objects.filter(headline__contains='Lennon').count()
+
+``count()`` performs a ``SELECT COUNT(*)`` behind the scenes, so you should
+always use ``count()`` rather than loading all of the record into Python
+objects and calling ``len()`` on the result.
+
+Depending on which database you're using (e.g. PostgreSQL vs. MySQL),
+``count()`` may return a long integer instead of a normal Python integer. This
+is an underlying implementation quirk that shouldn't pose any real-world
+problems.
+
+``in_bulk(id_list)``
+~~~~~~~~~~~~~~~~~~~~
+
+Takes a list of primary-key values and returns a dictionary mapping each
+primary-key value to an instance of the object with the given ID.
+
+Example::
+
+    >>> Blog.objects.in_bulk([1])
+    {1: Beatles Blog}
+    >>> Blog.objects.in_bulk([1, 2])
+    {1: Beatles Blog, 2: Cheddar Talk}
+    >>> Blog.objects.in_bulk([])
+    {}
+
+If you pass ``in_bulk()`` an empty list, you'll get an empty dictionary.
+
+``iterator()``
+~~~~~~~~~~~~~~
+
+Evaluates the ``QuerySet`` (by performing the query) and returns an
+`iterator`_ over the results. A ``QuerySet`` typically reads all of
+its results and instantiates all of the corresponding objects the
+first time you access it; ``iterator()`` will instead read results and
+instantiate objects in discrete chunks, yielding them one at a
+time. For a ``QuerySet`` which returns a large number of objects, this
+often results in better performance and a significant reduction in
+memory use.
+
+Note that using ``iterator()`` on a ``QuerySet`` which has already
+been evaluated will force it to evaluate again, repeating the query.
+
+.. _iterator: http://www.python.org/dev/peps/pep-0234/
+
+``latest(field_name=None)``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Returns the latest object in the table, by date, using the ``field_name``
+provided as the date field.
+
+This example returns the latest ``Entry`` in the table, according to the
+``pub_date`` field::
+
+    Entry.objects.latest('pub_date')
+
+If your model's ``Meta`` specifies ``get_latest_by``, you can leave off the
+``field_name`` argument to ``latest()``. Django will use the field specified in
+``get_latest_by`` by default.
+
+Like ``get()``, ``latest()`` raises ``DoesNotExist`` if an object doesn't
+exist with the given parameters.
+
+Note ``latest()`` exists purely for convenience and readability.
+
+.. _field-lookups:
+
+Field lookups
+-------------
+
+Field lookups are how you specify the meat of an SQL ``WHERE`` clause. They're
+specified as keyword arguments to the ``QuerySet`` methods ``filter()``,
+``exclude()`` and ``get()``.
+
+For an introduction, see :ref:`field-lookups-intro`.
+
+exact
+~~~~~
+
+Exact match. If the value provided for comparison is ``None``, it will
+be interpreted as an SQL ``NULL`` (See isnull_ for more details).
+
+Examples::
+
+    Entry.objects.get(id__exact=14)
+    Entry.objects.get(id__exact=None)
+
+SQL equivalents::
+
+    SELECT ... WHERE id = 14;
+    SELECT ... WHERE id IS NULL;
+
+**New in Django development version:** The semantics of ``id__exact=None`` have
+changed in the development version. Previously, it was (intentionally)
+converted to ``WHERE id = NULL`` at the SQL level, which would never match
+anything. It has now been changed to behave the same as ``id__isnull=True``.
+
+.. admonition:: MySQL comparisons
+
+    In MySQL, whether or not ``exact`` comparisons are case-sensitive depends
+    upon the collation setting of the table involved. The default is usually
+    ``latin1_swedish_ci`` or ``utf8_swedish_ci``, which results in
+    case-insensitive comparisons. Change the collation to
+    ``latin1_swedish_cs`` or ``utf8_bin`` for case sensitive comparisons.
+
+    For more details, refer to the MySQL manual section about `character sets
+    and collations`_.
+
+.. _character sets and collations: http://dev.mysql.com/doc/refman/5.0/en/charset.html
+
+iexact
+~~~~~~
+
+Case-insensitive exact match.
+
+Example::
+
+    Blog.objects.get(name__iexact='beatles blog')
+
+SQL equivalent::
+
+    SELECT ... WHERE name ILIKE 'beatles blog';
+
+Note this will match ``'Beatles Blog'``, ``'beatles blog'``,
+``'BeAtLes BLoG'``, etc.
+
+contains
+~~~~~~~~
+
+Case-sensitive containment test.
+
+Example::
+
+    Entry.objects.get(headline__contains='Lennon')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline LIKE '%Lennon%';
+
+Note this will match the headline ``'Today Lennon honored'`` but not
+``'today lennon honored'``.
+
+SQLite doesn't support case-sensitive ``LIKE`` statements; ``contains`` acts
+like ``icontains`` for SQLite.
+
+icontains
+~~~~~~~~~
+
+Case-insensitive containment test.
+
+Example::
+
+    Entry.objects.get(headline__icontains='Lennon')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline ILIKE '%Lennon%';
+
+in
+~~
+
+In a given list.
+
+Example::
+
+    Entry.objects.filter(id__in=[1, 3, 4])
+
+SQL equivalent::
+
+    SELECT ... WHERE id IN (1, 3, 4);
+
+You can also use a queryset to dynamically evaluate the list of values
+instead of providing a list of literal values. The queryset must be
+reduced to a list of individual values using the ``values()`` method,
+and then converted into a query using the ``query`` attribute::
+
+    Entry.objects.filter(blog__in=Blog.objects.filter(name__contains='Cheddar').values('pk').query)
+
+This queryset will be evaluated as subselect statement::
+
+    SELECT ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%')
+
+gt
+~~
+
+Greater than.
+
+Example::
+
+    Entry.objects.filter(id__gt=4)
+
+SQL equivalent::
+
+    SELECT ... WHERE id > 4;
+
+gte
+~~~
+
+Greater than or equal to.
+
+lt
+~~
+
+Less than.
+
+lte
+~~~
+
+Less than or equal to.
+
+in
+~~
+
+In a given list.
+
+Example::
+
+    Entry.objects.filter(id__in=[1, 3, 4])
+
+SQL equivalent::
+
+    SELECT ... WHERE id IN (1, 3, 4);
+
+startswith
+~~~~~~~~~~
+
+Case-sensitive starts-with.
+
+Example::
+
+    Entry.objects.filter(headline__startswith='Will')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline LIKE 'Will%';
+
+SQLite doesn't support case-sensitive ``LIKE`` statements; ``startswith`` acts
+like ``istartswith`` for SQLite.
+
+istartswith
+~~~~~~~~~~~
+
+Case-insensitive starts-with.
+
+Example::
+
+    Entry.objects.filter(headline__istartswith='will')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline ILIKE 'Will%';
+
+endswith
+~~~~~~~~
+
+Case-sensitive ends-with.
+
+Example::
+
+    Entry.objects.filter(headline__endswith='cats')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline LIKE '%cats';
+
+SQLite doesn't support case-sensitive ``LIKE`` statements; ``endswith`` acts
+like ``iendswith`` for SQLite.
+
+iendswith
+~~~~~~~~~
+
+Case-insensitive ends-with.
+
+Example::
+
+    Entry.objects.filter(headline__iendswith='will')
+
+SQL equivalent::
+
+    SELECT ... WHERE headline ILIKE '%will'
+
+range
+~~~~~
+
+Range test (inclusive).
+
+Example::
+
+    start_date = datetime.date(2005, 1, 1)
+    end_date = datetime.date(2005, 3, 31)
+    Entry.objects.filter(pub_date__range=(start_date, end_date))
+
+SQL equivalent::
+
+    SELECT ... WHERE pub_date BETWEEN '2005-01-01' and '2005-03-31';
+
+You can use ``range`` anywhere you can use ``BETWEEN`` in SQL -- for dates,
+numbers and even characters.
+
+year
+~~~~
+
+For date/datetime fields, exact year match. Takes a four-digit year.
+
+Example::
+
+    Entry.objects.filter(pub_date__year=2005)
+
+SQL equivalent::
+
+    SELECT ... WHERE EXTRACT('year' FROM pub_date) = '2005';
+
+(The exact SQL syntax varies for each database engine.)
+
+month
+~~~~~
+
+For date/datetime fields, exact month match. Takes an integer 1 (January)
+through 12 (December).
+
+Example::
+
+    Entry.objects.filter(pub_date__month=12)
+
+SQL equivalent::
+
+    SELECT ... WHERE EXTRACT('month' FROM pub_date) = '12';
+
+(The exact SQL syntax varies for each database engine.)
+
+day
+~~~
+
+For date/datetime fields, exact day match.
+
+Example::
+
+    Entry.objects.filter(pub_date__day=3)
+
+SQL equivalent::
+
+    SELECT ... WHERE EXTRACT('day' FROM pub_date) = '3';
+
+(The exact SQL syntax varies for each database engine.)
+
+Note this will match any record with a pub_date on the third day of the month,
+such as January 3, July 3, etc.
+
+isnull
+~~~~~~
+
+Takes either ``True`` or ``False``, which correspond to SQL queries of
+``IS NULL`` and ``IS NOT NULL``, respectively.
+
+Example::
+
+    Entry.objects.filter(pub_date__isnull=True)
+
+SQL equivalent::
+
+    SELECT ... WHERE pub_date IS NULL;
+
+.. admonition:: ``__isnull=True`` vs ``__exact=None``
+
+    There is an important difference between ``__isnull=True`` and
+    ``__exact=None``. ``__exact=None`` will *always* return an empty result
+    set, because SQL requires that no value is equal to ``NULL``.
+    ``__isnull`` determines if the field is currently holding the value
+    of ``NULL`` without performing a comparison.
+
+search
+~~~~~~
+
+A boolean full-text search, taking advantage of full-text indexing. This is
+like ``contains`` but is significantly faster due to full-text indexing.
+
+Note this is only available in MySQL and requires direct manipulation of the
+database to add the full-text index.
+
+regex
+~~~~~
+
+**New in Django development version**
+
+Case-sensitive regular expression match.
+
+The regular expression syntax is that of the database backend in use. In the
+case of SQLite, which doesn't natively support regular-expression lookups, the
+syntax is that of Python's ``re`` module.
+
+Example::
+
+    Entry.objects.get(title__regex=r'^(An?|The) +')
+
+SQL equivalents::
+
+    SELECT ... WHERE title REGEXP BINARY '^(An?|The) +'; -- MySQL
+
+    SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'c'); -- Oracle
+
+    SELECT ... WHERE title ~ '^(An?|The) +'; -- PostgreSQL
+
+    SELECT ... WHERE title REGEXP '^(An?|The) +'; -- SQLite
+
+Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the
+regular expression syntax is recommended.
+
+iregex
+~~~~~~
+
+**New in Django development version**
+
+Case-insensitive regular expression match.
+
+Example::
+
+    Entry.objects.get(title__iregex=r'^(an?|the) +')
+
+SQL equivalents::
+
+    SELECT ... WHERE title REGEXP '^(an?|the) +'; -- MySQL
+
+    SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'i'); -- Oracle
+
+    SELECT ... WHERE title ~* '^(an?|the) +'; -- PostgreSQL
+
+    SELECT ... WHERE title REGEXP '(?i)^(an?|the) +'; -- SQLite
+
diff --git a/docs/ref/models/relations.txt b/docs/ref/models/relations.txt
new file mode 100644
index 0000000000..1ee8b26258
--- /dev/null
+++ b/docs/ref/models/relations.txt
@@ -0,0 +1,77 @@
+.. _ref-models-relations:
+
+=========================
+Related objects reference
+=========================
+
+Extra methods on managers when used in a ForeignKey context
+===========================================================
+
+.. currentmodule:: django.db.models
+
+.. method:: QuerySet.add(obj1, [obj2, ...])
+
+    Adds the specified model objects to the related object set.
+
+    Example::
+
+        >>> b = Blog.objects.get(id=1)
+        >>> e = Entry.objects.get(id=234)
+        >>> b.entry_set.add(e) # Associates Entry e with Blog b.
+
+.. method:: QuerySet.create(**kwargs)`
+
+    Creates a new object, saves it and puts it in the related object set.
+    Returns the newly created object::
+
+        >>> b = Blog.objects.get(id=1)
+        >>> e = b.entry_set.create(
+        ...     headline='Hello', 
+        ...     body_text='Hi', 
+        ...     pub_date=datetime.date(2005, 1, 1)
+        ... )
+        
+        # No need to call e.save() at this point -- it's already been saved.
+
+    This is equivalent to (but much simpler than)::
+
+        >>> b = Blog.objects.get(id=1)
+        >>> e = Entry(
+        ....     blog=b, 
+        ....     headline='Hello', 
+        ....     body_text='Hi', 
+        ....     pub_date=datetime.date(2005, 1, 1)
+        .... )
+        >>> e.save()
+
+    Note that there's no need to specify the keyword argument of the model that
+    defines the relationship. In the above example, we don't pass the parameter
+    ``blog`` to ``create()``. Django figures out that the new ``Entry`` object's
+    ``blog`` field should be set to ``b``.
+
+.. method:: QuerySet.remove(obj1, [obj2, ...])
+
+    Removes the specified model objects from the related object set::
+    
+        >>> b = Blog.objects.get(id=1)
+        >>> e = Entry.objects.get(id=234)
+        >>> b.entry_set.remove(e) # Disassociates Entry e from Blog b.
+
+    In order to prevent database inconsistency, this method only exists on
+    ``ForeignKey`` objects where ``null=True``. If the related field can't be
+    set to ``None`` (``NULL``), then an object can't be removed from a relation
+    without being added to another. In the above example, removing ``e`` from
+    ``b.entry_set()`` is equivalent to doing ``e.blog = None``, and because the
+    ``blog`` ``ForeignKey`` doesn't have ``null=True``, this is invalid.
+
+.. method:: QuerySet.clear()
+
+    Removes all objects from the related object set::
+
+        >>> b = Blog.objects.get(id=1)
+        >>> b.entry_set.clear()
+
+    Note this doesn't delete the related objects -- it just disassociates them.
+
+    Just like ``remove()``, ``clear()`` is only available on ``ForeignKey``s
+    where ``null=True``.
diff --git a/docs/request_response.txt b/docs/ref/request-response.txt
similarity index 51%
rename from docs/request_response.txt
rename to docs/ref/request-response.txt
index 9b3f6dd0e3..34f098b084 100644
--- a/docs/request_response.txt
+++ b/docs/ref/request-response.txt
@@ -1,35 +1,44 @@
+.. _ref-request-response:
+
 ============================
 Request and response objects
 ============================
 
+.. module:: django.http
+   :synopsis: Classes dealing with HTTP requests and responses.
+
 Quick overview
 ==============
 
 Django uses request and response objects to pass state through the system.
 
-When a page is requested, Django creates an ``HttpRequest`` object that
+When a page is requested, Django creates an :class:`HttpRequest` object that
 contains metadata about the request. Then Django loads the appropriate view,
-passing the ``HttpRequest`` as the first argument to the view function. Each
-view is responsible for returning an ``HttpResponse`` object.
+passing the :class:`HttpRequest` as the first argument to the view function. Each
+view is responsible for returning an :class:`HttpResponse` object.
 
-This document explains the APIs for ``HttpRequest`` and ``HttpResponse``
+This document explains the APIs for :class:`HttpRequest` and :class:`HttpResponse`
 objects.
 
 HttpRequest objects
 ===================
 
+.. class:: HttpRequest
+
 Attributes
 ----------
 
 All attributes except ``session`` should be considered read-only.
 
-``path``
-    A string representing the full path to the requested page, not including
-    the domain.
+.. attribute:: HttpRequest.path
 
-    Example: ``"/music/bands/the_beatles/"``
+   A string representing the full path to the requested page, not including
+   the domain.
+
+   Example: ``"/music/bands/the_beatles/"``
+
+.. attribute:: HttpRequest.method
 
-``method``
     A string representing the HTTP method used in the request. This is
     guaranteed to be uppercase. Example::
 
@@ -38,7 +47,8 @@ All attributes except ``session`` should be considered read-only.
         elif request.method == 'POST':
             do_something_else()
 
-``encoding``
+.. attribute:: HttpRequest.encoding
+
     **New in Django development version**
 
     A string representing the current encoding used to decode form submission
@@ -48,11 +58,13 @@ All attributes except ``session`` should be considered read-only.
     ``GET`` or ``POST``) will use the new ``encoding`` value.  Useful if you
     know the form data is not in the ``DEFAULT_CHARSET`` encoding.
 
-``GET``
+.. attribute:: HttpRequest.GET
+
     A dictionary-like object containing all given HTTP GET parameters. See the
     ``QueryDict`` documentation below.
 
-``POST``
+.. attribute:: HttpRequest.POST
+
     A dictionary-like object containing all given HTTP POST parameters. See the
     ``QueryDict`` documentation below.
 
@@ -64,7 +76,8 @@ All attributes except ``session`` should be considered read-only.
 
     Note: ``POST`` does *not* include file-upload information. See ``FILES``.
 
-``REQUEST``
+.. attribute:: HttpRequest.REQUEST
+
     For convenience, a dictionary-like object that searches ``POST`` first,
     then ``GET``. Inspired by PHP's ``$_REQUEST``.
 
@@ -75,12 +88,13 @@ All attributes except ``session`` should be considered read-only.
     It's strongly suggested that you use ``GET`` and ``POST`` instead of
     ``REQUEST``, because the former are more explicit.
 
-``COOKIES``
+.. attribute:: HttpRequest.COOKIES
+
     A standard Python dictionary containing all cookies. Keys and values are
     strings.
 
-``FILES``
-    
+.. attribute:: HttpRequest.FILES 
+
     .. admonition:: Changed in Django development version
         
         In previous versions of Django, ``request.FILES`` contained
@@ -91,7 +105,7 @@ All attributes except ``session`` should be considered read-only.
         These ``UploadedFile`` objects will emulate the old-style ``dict``
         interface, but this is deprecated and will be removed in the next
         release of Django.
-        
+
     A dictionary-like object containing all uploaded files. Each key in
     ``FILES`` is the ``name`` from the ``<input type="file" name="" />``. Each
     value in ``FILES`` is an ``UploadedFile`` object containing the following
@@ -102,16 +116,15 @@ All attributes except ``session`` should be considered read-only.
         * ``file_size`` -- The size, in bytes, of the uploaded file.
         * ``chunk()`` -- A generator that yields sequential chunks of data.
 
-    See `File Uploads`_ for more information. 
-    
+    See :ref:`topics-files` for more information.
+
     Note that ``FILES`` will only contain data if the request method was POST
     and the ``<form>`` that posted to the request had
     ``enctype="multipart/form-data"``. Otherwise, ``FILES`` will be a blank
     dictionary-like object.
-    
-    .. _File Uploads: ../upload_handling/
 
-``META``
+.. attribute:: HttpRequest.META
+
     A standard Python dictionary containing all available HTTP headers.
     Available headers depend on the client and server, but here are some
     examples:
@@ -130,7 +143,8 @@ All attributes except ``session`` should be considered read-only.
         * ``SERVER_NAME`` -- The hostname of the server.
         * ``SERVER_PORT`` -- The port of the server.
 
-``user``
+.. attribute:: HttpRequest.user
+
     A ``django.contrib.auth.models.User`` object representing the currently
     logged-in user. If the user isn't currently logged in, ``user`` will be set
     to an instance of ``django.contrib.auth.models.AnonymousUser``. You
@@ -143,34 +157,32 @@ All attributes except ``session`` should be considered read-only.
 
     ``user`` is only available if your Django installation has the
     ``AuthenticationMiddleware`` activated. For more, see
-    `Authentication in Web requests`_.
+    :ref:`topics-auth`.
 
-    .. _Authentication in Web requests: ../authentication/#authentication-in-web-requests
+.. attribute:: HttpRequest.session
 
-``session``
     A readable-and-writable, dictionary-like object that represents the current
     session. This is only available if your Django installation has session
-    support activated. See the `session documentation`_ for full details.
+    support activated. See the :ref:`session documentation
+    <topics-http-sessions>` for full details.
 
-    .. _`session documentation`: ../sessions/
+.. attribute:: HttpRequest.row_post_data
 
-``raw_post_data``
     The raw HTTP POST data. This is only useful for advanced processing. Use
     ``POST`` instead.
 
-``urlconf``
-    Not defined by Django itself, but will be read if other code
-    (e.g., a custom middleware class) sets it. When present, this will
-    be used as the root URLconf for the current request, overriding
-    the ``ROOT_URLCONF`` setting. See `How Django processes a
-    request`_ for details.
+.. attribute:: HttpRequest.urlconf
 
-.. _How Django processes a request: ../url_dispatch/#how-django-processes-a-request
+    Not defined by Django itself, but will be read if other code (e.g., a custom
+    middleware class) sets it. When present, this will be used as the root
+    URLconf for the current request, overriding the ``ROOT_URLCONF`` setting.
+    See :ref:`how-django-processes-a-request` for details.
 
 Methods
 -------
 
-``get_host()``
+.. method:: HttpRequest.get_host()
+
    **New in Django development version**
 
    Returns the originating host of the request using information from the
@@ -182,12 +194,14 @@ Methods
 
    Example: ``"127.0.0.1:8000"``
 
-``get_full_path()``
+.. method:: HttpRequest.get_full_path()
+
    Returns the ``path``, plus an appended query string, if applicable.
 
    Example: ``"/music/bands/the_beatles/?print=true"``
 
-``build_absolute_uri(location)``
+.. method:: HttpRequest.build_absolute_uri(location)
+
    **New in Django development version**
 
    Returns the absolute URI form of ``location``. If no location is provided,
@@ -199,11 +213,13 @@ Methods
 
    Example: ``"http://example.com/music/bands/the_beatles/?print=true"``
 
-``is_secure()``
+.. method:: HttpRequest.is_secure()
+
    Returns ``True`` if the request is secure; that is, if it was made with
    HTTPS.
 
-``is_ajax()``
+.. method:: HttpRequest.is_ajax()
+
    **New in Django development version**
 
    Returns ``True`` if the request was made via an ``XMLHttpRequest``, by checking
@@ -220,11 +236,14 @@ Methods
    If you write your own XMLHttpRequest call (on the browser side), you'll
    have to set this header manually if you want ``is_ajax()`` to work.
 
+
 QueryDict objects
 -----------------
 
-In an ``HttpRequest`` object, the ``GET`` and ``POST`` attributes are instances
-of ``django.http.QueryDict``. ``QueryDict`` is a dictionary-like
+.. class:: QueryDict
+
+In an :class:`HttpRequest` object, the ``GET`` and ``POST`` attributes are instances
+of ``django.http.QueryDict``. :class:`QueryDict` is a dictionary-like
 class customized to deal with multiple values for the same key. This is
 necessary because some HTML form elements, notably
 ``<select multiple="multiple">``, pass multiple values for the same key.
@@ -233,35 +252,47 @@ necessary because some HTML form elements, notably
 That means you can't change attributes of ``request.POST`` and ``request.GET``
 directly.
 
-``QueryDict`` implements all the standard dictionary methods, because it's a
-subclass of dictionary. Exceptions are outlined here:
+Methods
+-------
 
-    * ``__getitem__(key)`` -- Returns the value for the given key. If the key
-      has more than one value, ``__getitem__()`` returns the last value.
-      Raises ``django.utils.datastructure.MultiValueDictKeyError`` if the key
-      does not exist. (This is a subclass of Python's standard ``KeyError``,
-      so you can stick to catching ``KeyError``.)
+:class:`QueryDict` implements all the standard dictionary methods, because it's
+a subclass of dictionary. Exceptions are outlined here:
 
-    * ``__setitem__(key, value)`` -- Sets the given key to ``[value]``
-      (a Python list whose single element is ``value``). Note that this, as
-      other dictionary functions that have side effects, can only be called on
-      a mutable ``QueryDict`` (one that was created via ``copy()``).
+.. method:: QueryDict.__getitem__(key)
 
-    * ``__contains__(key)`` -- Returns ``True`` if the given key is set. This
-      lets you do, e.g., ``if "foo" in request.GET``.
+    Returns the value for the given key. If the key has more than one value,
+    ``__getitem__()`` returns the last value. Raises
+    ``django.utils.datastructure.MultiValueDictKeyError`` if the key does not
+    exist. (This is a subclass of Python's standard ``KeyError``, so you can
+    stick to catching ``KeyError``.)
 
-    * ``get(key, default)`` -- Uses the same logic as ``__getitem__()`` above,
-      with a hook for returning a default value if the key doesn't exist.
+.. method:: QueryDict.__setitem__(key, value)
 
-    * ``has_key(key)``
+    Sets the given key to ``[value]`` (a Python list whose single element is
+    ``value``). Note that this, as other dictionary functions that have side
+    effects, can only be called on a mutable ``QueryDict`` (one that was created
+    via ``copy()``).
 
-    * ``setdefault(key, default)`` -- Just like the standard dictionary
-      ``setdefault()`` method, except it uses ``__setitem__`` internally.
+.. method:: QueryDict.__contains__(key)
 
-    * ``update(other_dict)`` -- Takes either a ``QueryDict`` or standard
-      dictionary. Just like the standard dictionary ``update()`` method, except
-      it *appends* to the current dictionary items rather than replacing them.
-      For example::
+    Returns ``True`` if the given key is set. This lets you do, e.g., ``if "foo"
+    in request.GET``.
+
+.. method:: QueryDict.get(key, default)
+
+    Uses the same logic as ``__getitem__()`` above, with a hook for returning a
+    default value if the key doesn't exist.
+
+.. method:: QueryDict.setdefault(key, default)
+
+    Just like the standard dictionary ``setdefault()`` method, except it uses
+    ``__setitem__`` internally.
+
+.. method:: QueryDict.update(other_dict) 
+
+    Takes either a ``QueryDict`` or standard dictionary. Just like the standard
+    dictionary ``update()`` method, except it *appends* to the current
+    dictionary items rather than replacing them. For example::
 
           >>> q = QueryDict('a=1')
           >>> q = q.copy() # to make it mutable
@@ -271,17 +302,19 @@ subclass of dictionary. Exceptions are outlined here:
           >>> q['a'] # returns the last
           ['2']
 
-    * ``items()`` -- Just like the standard dictionary ``items()`` method,
-      except this uses the same last-value logic as ``__getitem()__``. For
-      example::
+.. method:: QueryDict.items()
+
+    Just like the standard dictionary ``items()`` method, except this uses the
+    same last-value logic as ``__getitem()__``. For example::
 
            >>> q = QueryDict('a=1&a=2&a=3')
            >>> q.items()
            [('a', '3')]
 
-    * ``values()`` -- Just like the standard dictionary ``values()`` method,
-      except this uses the same last-value logic as ``__getitem()__``. For
-      example::
+.. method:: QueryDict.values()
+
+    Just like the standard dictionary ``values()`` method, except this uses the
+    same last-value logic as ``__getitem()__``. For example::
 
            >>> q = QueryDict('a=1&a=2&a=3')
            >>> q.values()
@@ -289,83 +322,56 @@ subclass of dictionary. Exceptions are outlined here:
 
 In addition, ``QueryDict`` has the following methods:
 
-    * ``copy()`` -- Returns a copy of the object, using ``copy.deepcopy()``
-      from the Python standard library. The copy will be mutable -- that is,
-      you can change its values.
+.. method:: QueryDict.copy()
 
-    * ``getlist(key)`` -- Returns the data with the requested key, as a Python
-      list. Returns an empty list if the key doesn't exist. It's guaranteed to
-      return a list of some sort.
+    Returns a copy of the object, using ``copy.deepcopy()`` from the Python
+    standard library. The copy will be mutable -- that is, you can change its
+    values.
 
-    * ``setlist(key, list_)`` -- Sets the given key to ``list_`` (unlike
-      ``__setitem__()``).
+.. method:: QueryDict.getlist(key)
 
-    * ``appendlist(key, item)`` -- Appends an item to the internal list
-      associated with key.
+    Returns the data with the requested key, as a Python list. Returns an
+    empty list if the key doesn't exist. It's guaranteed to return a list of
+    some sort.
 
-    * ``setlistdefault(key, default_list)`` -- Just like ``setdefault``, except
-      it takes a list of values instead of a single value.
+.. method:: QueryDict.setlist(key, list_)
 
-    * ``lists()`` -- Like ``items()``, except it includes all values, as a list,
-      for each member of the dictionary. For example::
+    Sets the given key to ``list_`` (unlike ``__setitem__()``).
 
-           >>> q = QueryDict('a=1&a=2&a=3')
-           >>> q.lists()
-           [('a', ['1', '2', '3'])]
+.. method:: QueryDict.appendlist(key, item)
 
-    * ``urlencode()`` -- Returns a string of the data in query-string format.
-      Example: ``"a=2&b=3&b=5"``.
+    Appends an item to the internal list associated with key.
 
-Examples
---------
+.. method:: QueryDict.setlistdefault(key, default_list)
 
-Here's an example HTML form and how Django would treat the input::
+    Just like ``setdefault``, except it takes a list of values instead of a
+    single value.
 
-    <form action="/foo/bar/" method="post">
-    <input type="text" name="your_name" />
-    <select multiple="multiple" name="bands">
-        <option value="beatles">The Beatles</option>
-        <option value="who">The Who</option>
-        <option value="zombies">The Zombies</option>
-    </select>
-    <input type="submit" />
-    </form>
+.. method:: QueryDict.lists()
 
-If the user enters ``"John Smith"`` in the ``your_name`` field and selects both
-"The Beatles" and "The Zombies" in the multiple select box, here's what
-Django's request object would have::
+    Like :method:items(), except it includes all values, as a list, for each
+    member of the dictionary. For example::
+    
+         >>> q = QueryDict('a=1&a=2&a=3')
+         >>> q.lists()
+         [('a', ['1', '2', '3'])]
+    
+.. method:: QueryDict.urlencode()
 
-    >>> request.GET
-    {}
-    >>> request.POST
-    {'your_name': ['John Smith'], 'bands': ['beatles', 'zombies']}
-    >>> request.POST['your_name']
-    'John Smith'
-    >>> request.POST['bands']
-    'zombies'
-    >>> request.POST.getlist('bands')
-    ['beatles', 'zombies']
-    >>> request.POST.get('your_name', 'Adrian')
-    'John Smith'
-    >>> request.POST.get('nonexistent_field', 'Nowhere Man')
-    'Nowhere Man'
-
-Implementation notes
---------------------
-
-The ``GET``, ``POST``, ``COOKIES``, ``FILES``, ``META``, ``REQUEST``,
-``raw_post_data`` and ``user`` attributes are all lazily loaded. That means
-Django doesn't spend resources calculating the values of those attributes until
-your code requests them.
+    Returns a string of the data in query-string format.
+    Example: ``"a=2&b=3&b=5"``.
 
 HttpResponse objects
 ====================
 
-In contrast to ``HttpRequest`` objects, which are created automatically by
-Django, ``HttpResponse`` objects are your responsibility. Each view you write
-is responsible for instantiating, populating and returning an ``HttpResponse``.
+.. class:: HttpResponse
 
-The ``HttpResponse`` class lives in the ``django.http`` module.
+In contrast to :class:`HttpRequest` objects, which are created automatically by
+Django, :class:`HttpResponse` objects are your responsibility. Each view you
+write is responsible for instantiating, populating and returning an
+:class:`HttpResponse`.
+
+The :class:`HttpResponse` class lives in the ``django.http`` module.
 
 Usage
 -----
@@ -374,7 +380,7 @@ Passing strings
 ~~~~~~~~~~~~~~~
 
 Typical usage is to pass the contents of the page, as a string, to the
-``HttpResponse`` constructor::
+:class:`HttpResponse` constructor::
 
     >>> response = HttpResponse("Here's the text of the Web page.")
     >>> response = HttpResponse("Text only, please.", mimetype="text/plain")
@@ -403,8 +409,8 @@ Finally, you can pass ``HttpResponse`` an iterator rather than passing it
 hard-coded strings. If you use this technique, follow these guidelines:
 
     * The iterator should return strings.
-    * If an ``HttpResponse`` has been initialized with an iterator as its
-      content, you can't use the ``HttpResponse`` instance as a file-like
+    * If an :class:`HttpResponse` has been initialized with an iterator as its
+      content, you can't use the class:`HttpResponse` instance as a file-like
       object. Doing so will raise ``Exception``.
 
 Setting headers
@@ -431,7 +437,8 @@ it's easy to forget the syntax, so we've included it here.
 Methods
 -------
 
-``__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE)``
+.. method:: HttpResponse.__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE)
+    
     Instantiates an ``HttpResponse`` object with the given page content (a
     string) and MIME type. The ``DEFAULT_CONTENT_TYPE`` is ``'text/html'``.
 
@@ -449,22 +456,27 @@ Methods
     (not ``None``), that value is used. Otherwise, ``content_type`` is used. If
     neither is given, the ``DEFAULT_CONTENT_TYPE`` setting is used.
 
-``__setitem__(header, value)``
+.. method:: HttpResponse.__setitem__(header, value)
+
     Sets the given header name to the given value. Both ``header`` and
     ``value`` should be strings.
 
-``__delitem__(header)``
+.. method:: HttpResponse.__delitem__(header)
+
     Deletes the header with the given name. Fails silently if the header
     doesn't exist. Case-sensitive.
 
-``__getitem__(header)``
+.. method:: HttpResponse.__getitem__(header)
+
     Returns the value for the given header name. Case-sensitive.
 
-``has_header(header)``
+.. method:: HttpResponse.has_header(header)
+
     Returns ``True`` or ``False`` based on a case-insensitive check for a
     header with the given name.
 
-``set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None)``
+.. method:: HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None)
+
     Sets a cookie. The parameters are the same as in the `cookie Morsel`_
     object in the Python standard library.
 
@@ -480,184 +492,83 @@ Methods
 
     .. _`cookie Morsel`: http://www.python.org/doc/current/lib/morsel-objects.html
 
-``delete_cookie(key, path='/', domain=None)``
+.. method:: HttpResponse.delete_cookie(key, path='/', domain=None)
+
     Deletes the cookie with the given key. Fails silently if the key doesn't
     exist.
 
     Due to the way cookies work, ``path`` and ``domain`` should be the same
-    values you used in ``set_cookie()`` -- otherwise the cookie may not be deleted.
+    values you used in ``set_cookie()`` -- otherwise the cookie may not be
+    deleted.
+
+.. method:: HttpResponse.content()
 
-``content``
     Returns the content as a Python string, encoding it from a Unicode object
     if necessary. Note this is a property, not a method, so use ``r.content``
     instead of ``r.content()``.
 
-``write(content)``, ``flush()`` and ``tell()``
-    These methods make an ``HttpResponse`` instance a file-like object.
+.. method:: HttpResponse.write(content)
+
+    This method makes an :class:`HttpResponse` instance a file-like object.
+
+.. method:: HttpResponse.flush()
+
+    This method makes an :class:`HttpResponse` instance a file-like object.
+
+.. method:: HttpResponse.tell()
+
+    This method makes an :class:`HttpResponse` instance a file-like object.
 
 .. _HTTP Status code: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10
 
+
 HttpResponse subclasses
 -----------------------
 
 Django includes a number of ``HttpResponse`` subclasses that handle different
 types of HTTP responses. Like ``HttpResponse``, these subclasses live in
-``django.http``.
+:mod:`django.http`.
+
+.. class:: HttpResponseRedirect
 
-``HttpResponseRedirect``
     The constructor takes a single argument -- the path to redirect to. This
     can be a fully qualified URL (e.g. ``'http://www.yahoo.com/search/'``) or an
     absolute URL with no domain (e.g. ``'/search/'``). Note that this returns
     an HTTP status code 302.
 
-``HttpResponsePermanentRedirect``
-    Like ``HttpResponseRedirect``, but it returns a permanent redirect (HTTP
-    status code 301) instead of a "found" redirect (status code 302).
+.. class:: HttpResponsePermanentRedirect
+
+    Like :class:`HttpResponseRedirect`, but it returns a permanent redirect
+    (HTTP status code 301) instead of a "found" redirect (status code 302).
+
+.. class:: HttpResponseNotModified
 
-``HttpResponseNotModified``
     The constructor doesn't take any arguments. Use this to designate that a
     page hasn't been modified since the user's last request (status code 304).
 
-``HttpResponseBadRequest``
-    **New in Django development version.**
-    Acts just like ``HttpResponse`` but uses a 400 status code.
+.. class:: HttpResponseBadRequest
 
-``HttpResponseNotFound``
-    Acts just like ``HttpResponse`` but uses a 404 status code.
+    **New in Django development version.** Acts just like :class:`HttpResponse`
+    but uses a 400 status code.
 
-``HttpResponseForbidden``
-    Acts just like ``HttpResponse`` but uses a 403 status code.
+.. class:: HttpResponseNotFound
 
-``HttpResponseNotAllowed``
-    Like ``HttpResponse``, but uses a 405 status code. Takes a single,
+    Acts just like :class:`HttpResponse` but uses a 404 status code.
+
+.. class:: HttpResponseForbidden
+
+    Acts just like :class:`HttpResponse` but uses a 403 status code.
+
+.. class:: HttpResponseNotAllowed
+
+    Like :class:`HttpResponse`, but uses a 405 status code. Takes a single,
     required argument: a list of permitted methods (e.g. ``['GET', 'POST']``).
 
-``HttpResponseGone``
-    Acts just like ``HttpResponse`` but uses a 410 status code.
+.. class:: HttpResponseGone
 
-``HttpResponseServerError``
-    Acts just like ``HttpResponse`` but uses a 500 status code.
+    Acts just like :class:`HttpResponse` but uses a 410 status code.
 
-Returning errors
-================
+.. class:: HttpResponseServerError
 
-Returning HTTP error codes in Django is easy. We've already mentioned the
-``HttpResponseNotFound``, ``HttpResponseForbidden``,
-``HttpResponseServerError``, etc., subclasses; just return an instance of one
-of those subclasses instead of a normal ``HttpResponse`` in order to signify
-an error. For example::
+    Acts just like :class:`HttpResponse` but uses a 500 status code.
 
-    def my_view(request):
-        # ...
-        if foo:
-            return HttpResponseNotFound('<h1>Page not found</h1>')
-        else:
-            return HttpResponse('<h1>Page was found</h1>')
-
-Because 404 errors are by far the most common HTTP error, there's an easier way
-to handle those errors.
-
-The Http404 exception
----------------------
-
-When you return an error such as ``HttpResponseNotFound``, you're responsible
-for defining the HTML of the resulting error page::
-
-    return HttpResponseNotFound('<h1>Page not found</h1>')
-
-For convenience, and because it's a good idea to have a consistent 404 error page
-across your site, Django provides an ``Http404`` exception. If you raise
-``Http404`` at any point in a view function, Django will catch it and return the
-standard error page for your application, along with an HTTP error code 404.
-
-Example usage::
-
-    from django.http import Http404
-
-    def detail(request, poll_id):
-        try:
-            p = Poll.objects.get(pk=poll_id)
-        except Poll.DoesNotExist:
-            raise Http404
-        return render_to_response('polls/detail.html', {'poll': p})
-
-In order to use the ``Http404`` exception to its fullest, you should create a
-template that is displayed when a 404 error is raised. This template should be
-called ``404.html`` and located in the top level of your template tree.
-
-Customizing error views
------------------------
-
-The 404 (page not found) view
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When you raise an ``Http404`` exception, Django loads a special view devoted
-to handling 404 errors. By default, it's the view
-``django.views.defaults.page_not_found``, which loads and renders the template
-``404.html``.
-
-This means you need to define a ``404.html`` template in your root template
-directory. This template will be used for all 404 errors.
-
-This ``page_not_found`` view should suffice for 99% of Web applications, but if
-you want to override the 404 view, you can specify ``handler404`` in your
-URLconf, like so::
-
-    handler404 = 'mysite.views.my_custom_404_view'
-
-Behind the scenes, Django determines the 404 view by looking for ``handler404``.
-By default, URLconfs contain the following line::
-
-    from django.conf.urls.defaults import *
-
-That takes care of setting ``handler404`` in the current module. As you can see
-in ``django/conf/urls/defaults.py``, ``handler404`` is set to
-``'django.views.defaults.page_not_found'`` by default.
-
-Three things to note about 404 views:
-
-    * The 404 view is also called if Django doesn't find a match after checking
-      every regular expression in the URLconf.
-
-    * If you don't define your own 404 view -- and simply use the
-      default, which is recommended -- you still have one obligation:
-      you must create a ``404.html`` template in the root of your
-      template directory. The default 404 view will use that template
-      for all 404 errors. The default 404 view will pass one variable
-      to the template: ``request_path``, which is the URL that resulted
-      in the 404.
-
-    * The 404 view is passed a ``RequestContext`` and will have access to
-      variables supplied by your ``TEMPLATE_CONTEXT_PROCESSORS`` setting (e.g.,
-      ``MEDIA_URL``).
-
-    * If ``DEBUG`` is set to ``True`` (in your settings module), then your 404
-      view will never be used, and the traceback will be displayed instead.
-
-The 500 (server error) view
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Similarly, Django executes special-case behavior in the case of runtime errors
-in view code. If a view results in an exception, Django will, by default, call
-the view ``django.views.defaults.server_error``, which loads and renders the
-template ``500.html``.
-
-This means you need to define a ``500.html`` template in your root template
-directory. This template will be used for all server errors. The default 500
-view passes no variables to this template and is rendered with an empty
-``Context`` to lessen the chance of additional errors.
-
-This ``server_error`` view should suffice for 99% of Web applications, but if
-you want to override the view, you can specify ``handler500`` in your
-URLconf, like so::
-
-    handler500 = 'mysite.views.my_custom_error_view'
-
-Behind the scenes, Django determines the error view by looking for ``handler500``.
-By default, URLconfs contain the following line::
-
-    from django.conf.urls.defaults import *
-
-That takes care of setting ``handler500`` in the current module. As you can see
-in ``django/conf/urls/defaults.py``, ``handler500`` is set to
-``'django.views.defaults.server_error'`` by default.
diff --git a/docs/settings.txt b/docs/ref/settings.txt
similarity index 65%
rename from docs/settings.txt
rename to docs/ref/settings.txt
index 06c8f93ec7..72bd97c169 100644
--- a/docs/settings.txt
+++ b/docs/ref/settings.txt
@@ -1,150 +1,4 @@
-===============
-Django settings
-===============
-
-A Django settings file contains all the configuration of your Django
-installation. This document explains how settings work and which settings are
-available.
-
-The basics
-==========
-
-A settings file is just a Python module with module-level variables.
-
-Here are a couple of example settings::
-
-    DEBUG = False
-    DEFAULT_FROM_EMAIL = 'webmaster@example.com'
-    TEMPLATE_DIRS = ('/home/templates/mike', '/home/templates/john')
-
-Because a settings file is a Python module, the following apply:
-
-    * It doesn't allow for Python syntax errors.
-    * It can assign settings dynamically using normal Python syntax.
-      For example::
-
-          MY_SETTING = [str(i) for i in range(30)]
-
-    * It can import values from other settings files.
-
-Designating the settings
-========================
-
-When you use Django, you have to tell it which settings you're using. Do this
-by using an environment variable, ``DJANGO_SETTINGS_MODULE``.
-
-The value of ``DJANGO_SETTINGS_MODULE`` should be in Python path syntax, e.g.
-``mysite.settings``. Note that the settings module should be on the
-Python `import search path`_.
-
-.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html
-
-The django-admin.py utility
----------------------------
-
-When using `django-admin.py`_, you can either set the environment variable
-once, or explicitly pass in the settings module each time you run the utility.
-
-Example (Unix Bash shell)::
-
-    export DJANGO_SETTINGS_MODULE=mysite.settings
-    django-admin.py runserver
-
-Example (Windows shell)::
-
-    set DJANGO_SETTINGS_MODULE=mysite.settings
-    django-admin.py runserver
-
-Use the ``--settings`` command-line argument to specify the settings manually::
-
-    django-admin.py runserver --settings=mysite.settings
-
-.. _django-admin.py: ../django-admin/
-
-On the server (mod_python)
---------------------------
-
-In your live server environment, you'll need to tell Apache/mod_python which
-settings file to use. Do that with ``SetEnv``::
-
-    <Location "/mysite/">
-        SetHandler python-program
-        PythonHandler django.core.handlers.modpython
-        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
-    </Location>
-
-Read the `Django mod_python documentation`_ for more information.
-
-.. _Django mod_python documentation: ../modpython/
-
-Default settings
-================
-
-A Django settings file doesn't have to define any settings if it doesn't need
-to. Each setting has a sensible default value. These defaults live in the file
-``django/conf/global_settings.py``.
-
-Here's the algorithm Django uses in compiling settings:
-
-    * Load settings from ``global_settings.py``.
-    * Load settings from the specified settings file, overriding the global
-      settings as necessary.
-
-Note that a settings file should *not* import from ``global_settings``, because
-that's redundant.
-
-Seeing which settings you've changed
-------------------------------------
-
-There's an easy way to view which of your settings deviate from the default
-settings. The command ``python manage.py diffsettings`` displays differences
-between the current settings file and Django's default settings.
-
-For more, see the `diffsettings documentation`_.
-
-.. _diffsettings documentation: ../django-admin/#diffsettings
-
-Using settings in Python code
-=============================
-
-In your Django apps, use settings by importing the object
-``django.conf.settings``. Example::
-
-    from django.conf import settings
-
-    if settings.DEBUG:
-        # Do something
-
-Note that ``django.conf.settings`` isn't a module -- it's an object. So
-importing individual settings is not possible::
-
-    from django.conf.settings import DEBUG  # This won't work.
-
-Also note that your code should *not* import from either ``global_settings`` or
-your own settings file. ``django.conf.settings`` abstracts the concepts of
-default settings and site-specific settings; it presents a single interface.
-It also decouples the code that uses settings from the location of your
-settings.
-
-Altering settings at runtime
-============================
-
-You shouldn't alter settings in your applications at runtime. For example,
-don't do this in a view::
-
-    from django.conf import settings
-
-    settings.DEBUG = True   # Don't do this!
-
-The only place you should assign to settings is in a settings file.
-
-Security
-========
-
-Because a settings file contains sensitive information, such as the database
-password, you should make every attempt to limit access to it. For example,
-change its file permissions so that only you and your Web server's user can
-read it. This is especially important in a shared-hosting environment.
+.. _ref-settings:
 
 Available settings
 ==================
@@ -152,6 +6,8 @@ Available settings
 Here's a full list of all available settings, in alphabetical order, and their
 default values.
 
+.. setting:: ABSOLUTE_URL_OVERRIDES
+
 ABSOLUTE_URL_OVERRIDES
 ----------------------
 
@@ -169,6 +25,8 @@ a model object and return its URL. This is a way of overriding
 Note that the model name used in this setting should be all lower-case, regardless
 of the case of the actual model class name.
 
+.. setting:: ADMIN_FOR
+
 ADMIN_FOR
 ---------
 
@@ -180,6 +38,8 @@ modules (in the format ``'foo.bar.baz'``) for which this site is an admin.
 The admin site uses this in its automatically-introspected documentation of
 models, views and template tags.
 
+.. setting:: ADMIN_MEDIA_PREFIX
+
 ADMIN_MEDIA_PREFIX
 ------------------
 
@@ -191,6 +51,8 @@ slash, and to have this be different from the ``MEDIA_URL`` setting
 (since the same URL cannot be mapped onto two different sets of
 files).
 
+.. setting:: ADMINS
+
 ADMINS
 ------
 
@@ -203,8 +65,10 @@ of (Full name, e-mail address). Example::
 
     (('John', 'john@example.com'), ('Mary', 'mary@example.com'))
 
-Note that Django will e-mail *all* of these people whenever an error happens. See the
-section on `error reporting via e-mail`_ for more information.
+Note that Django will e-mail *all* of these people whenever an error happens.
+See :ref:`howto-error-reporting` for more information.
+
+.. setting:: ALLOWED_INCLUDE_ROOTS
 
 ALLOWED_INCLUDE_ROOTS
 ---------------------
@@ -219,50 +83,58 @@ For example, if ``ALLOWED_INCLUDE_ROOTS`` is ``('/home/html', '/var/www')``,
 then ``{% ssi /home/html/foo.txt %}`` would work, but ``{% ssi /etc/passwd %}``
 wouldn't.
 
+.. setting:: APPEND_SLASH
+
 APPEND_SLASH
 ------------
 
 Default: ``True``
 
 Whether to append trailing slashes to URLs. This is only used if
-``CommonMiddleware`` is installed (see the `middleware docs`_). See also
+``CommonMiddleware`` is installed (see :ref:`topics-http-middleware`). See also
 ``PREPEND_WWW``.
 
+.. setting:: AUTHENTICATION_BACKENDS
+
 AUTHENTICATION_BACKENDS
 -----------------------
 
 Default: ``('django.contrib.auth.backends.ModelBackend',)``
 
-A tuple of authentication backend classes (as strings) to use when
-attempting to authenticate a user. See the `authentication backends
-documentation`_ for details.
+A tuple of authentication backend classes (as strings) to use when attempting to
+authenticate a user. See the :ref:`authentication backends documentation
+<authentication-backends>` for details.
 
-.. _authentication backends documentation: ../authentication/#other-authentication-sources
+.. setting:: AUTH_PROFILE_MODULE
 
 AUTH_PROFILE_MODULE
 -------------------
 
 Default: Not defined
 
-The site-specific user profile model used by this site. See the
-`documentation on user profile models`_ for details.
+The site-specific user profile model used by this site. See
+:ref:`auth-profiles`.
 
-.. _documentation on user profile models: ../authentication/#storing-additional-information-about-users
+.. setting:: CACHE_BACKEND
 
 CACHE_BACKEND
 -------------
 
 Default: ``'locmem://'``
 
-The cache backend to use. See the `cache docs`_.
+The cache backend to use. See :ref:`topics-cache`.
+
+.. setting:: CACHE_MIDDLEWARE_KEY_PREFIX
 
 CACHE_MIDDLEWARE_KEY_PREFIX
 ---------------------------
 
 Default: ``''`` (Empty string)
 
-The cache key prefix that the cache middleware should use. See the
-`cache docs`_.
+The cache key prefix that the cache middleware should use. See
+:ref:`topics-cache`.
+
+.. setting:: CACHE_MIDDLEWARE_SECONDS
 
 CACHE_MIDDLEWARE_SECONDS
 ------------------------
@@ -272,6 +144,8 @@ Default: ``600``
 The default number of seconds to cache a page when the caching middleware or
 ``cache_page()`` decorator is used.
 
+.. setting:: DATABASE_ENGINE
+
 DATABASE_ENGINE
 ---------------
 
@@ -287,6 +161,8 @@ ship with Django by setting ``DATABASE_ENGINE`` to a fully-qualified path (i.e.
 scratch is left as an exercise to the reader; see the other backends for
 examples.
 
+.. setting:: DATABASE_HOST
+
 DATABASE_HOST
 -------------
 
@@ -305,9 +181,11 @@ this value is assumed to be the host.
 
 If you're using PostgreSQL, an empty string means to use a Unix domain socket
 for the connection, rather than a network connection to localhost. If you
-explictly need to use a TCP/IP connection on the local machine with
+explicitly need to use a TCP/IP connection on the local machine with
 PostgreSQL, specify ``localhost`` here.
 
+.. setting:: DATABASE_NAME
+
 DATABASE_NAME
 -------------
 
@@ -316,6 +194,8 @@ Default: ``''`` (Empty string)
 The name of the database to use. For SQLite, it's the full path to the database
 file.
 
+.. setting:: DATABASE_OPTIONS
+
 DATABASE_OPTIONS
 ----------------
 
@@ -324,6 +204,8 @@ Default: ``{}`` (Empty dictionary)
 Extra parameters to use when connecting to the database. Consult backend
 module's document for available keywords.
 
+.. setting:: DATABASE_PASSWORD
+
 DATABASE_PASSWORD
 -----------------
 
@@ -331,6 +213,8 @@ Default: ``''`` (Empty string)
 
 The password to use when connecting to the database. Not used with SQLite.
 
+.. setting:: DATABASE_PORT
+
 DATABASE_PORT
 -------------
 
@@ -339,6 +223,8 @@ Default: ``''`` (Empty string)
 The port to use when connecting to the database. An empty string means the
 default port. Not used with SQLite.
 
+.. setting:: DATABASE_USER
+   
 DATABASE_USER
 -------------
 
@@ -346,6 +232,8 @@ Default: ``''`` (Empty string)
 
 The username to use when connecting to the database. Not used with SQLite.
 
+.. setting:: DATE_FORMAT
+
 DATE_FORMAT
 -----------
 
@@ -353,13 +241,13 @@ Default: ``'N j, Y'`` (e.g. ``Feb. 4, 2003``)
 
 The default formatting to use for date fields on Django admin change-list
 pages -- and, possibly, by other parts of the system. See
-`allowed date format strings`_.
+:ttag:`allowed date format strings <now>`.
 
 See also ``DATETIME_FORMAT``, ``TIME_FORMAT``, ``YEAR_MONTH_FORMAT``
 and ``MONTH_DAY_FORMAT``.
 
-.. _allowed date format strings: ../templates/#now
-
+.. setting:: DATETIME_FORMAT
+   
 DATETIME_FORMAT
 ---------------
 
@@ -367,12 +255,12 @@ Default: ``'N j, Y, P'`` (e.g. ``Feb. 4, 2003, 4 p.m.``)
 
 The default formatting to use for datetime fields on Django admin change-list
 pages -- and, possibly, by other parts of the system. See
-`allowed date format strings`_.
+:ttag:`allowed date format strings <now>`.
 
 See also ``DATE_FORMAT``, ``DATETIME_FORMAT``, ``TIME_FORMAT``,
 ``YEAR_MONTH_FORMAT`` and ``MONTH_DAY_FORMAT``.
 
-.. _allowed date format strings: ../templates/#now
+.. setting:: DEBUG
 
 DEBUG
 -----
@@ -388,7 +276,7 @@ be able to give backtraces without seeing sensitive (or offensive) settings.
 
 Still, note that there are always going to be sections of your debug output that
 are inappropriate for public consumption. File paths, configuration options, and
-the like all give attackers extra information about your server. 
+the like all give attackers extra information about your server.
 
 It is also important to remember that when running with ``DEBUG`` turned on, Django
 will remember every SQL query it executes. This is useful when you are debugging,
@@ -408,6 +296,9 @@ will be suppressed, and exceptions will propagate upwards.  This can
 be useful for some test setups, and should never be used on a live
 site.
 
+
+.. setting:: DEFAULT_CHARSET
+
 DEFAULT_CHARSET
 ---------------
 
@@ -417,6 +308,8 @@ Default charset to use for all ``HttpResponse`` objects, if a MIME type isn't
 manually specified. Used with ``DEFAULT_CONTENT_TYPE`` to construct the
 ``Content-Type`` header.
 
+.. setting:: DEFAULT_CONTENT_TYPE
+
 DEFAULT_CONTENT_TYPE
 --------------------
 
@@ -426,15 +319,15 @@ Default content type to use for all ``HttpResponse`` objects, if a MIME type
 isn't manually specified. Used with ``DEFAULT_CHARSET`` to construct the
 ``Content-Type`` header.
 
+.. setting:: DEFAULT_FROM_EMAIL
+
 DEFAULT_FILE_STORAGE
 --------------------
 
 Default: ``django.core.files.storage.FileSystemStorage``
 
 Default file storage class to be used for any file-related operations that don't
-specify a particular storage system. See the `file documentation`_ for details.
-
-.. _file documentation: ../files/
+specify a particular storage system. See :ref:`topics-files`.
 
 DEFAULT_FROM_EMAIL
 ------------------
@@ -444,6 +337,8 @@ Default: ``'webmaster@localhost'``
 Default e-mail address to use for various automated correspondence from the
 site manager(s).
 
+.. setting:: DEFAULT_TABLESPACE
+
 DEFAULT_TABLESPACE
 ------------------
 
@@ -454,6 +349,8 @@ Default: ``''`` (Empty string)
 Default tablespace to use for models that don't specify one, if the
 backend supports it.
 
+.. setting:: DEFAULT_INDEX_TABLESPACE
+
 DEFAULT_INDEX_TABLESPACE
 ------------------------
 
@@ -464,15 +361,19 @@ Default: ``''`` (Empty string)
 Default tablespace to use for indexes on fields that don't specify
 one, if the backend supports it.
 
+.. setting:: DISALLOWED_USER_AGENTS
+
 DISALLOWED_USER_AGENTS
 ----------------------
 
 Default: ``()`` (Empty tuple)
 
-List of compiled regular expression objects representing User-Agent strings
-that are not allowed to visit any page, systemwide. Use this for bad
-robots/crawlers.  This is only used if ``CommonMiddleware`` is installed (see
-the `middleware docs`_).
+List of compiled regular expression objects representing User-Agent strings that
+are not allowed to visit any page, systemwide. Use this for bad robots/crawlers.
+This is only used if ``CommonMiddleware`` is installed (see
+:ref:`topics-http-middleware`).
+
+.. setting:: EMAIL_HOST
 
 EMAIL_HOST
 ----------
@@ -483,6 +384,8 @@ The host to use for sending e-mail.
 
 See also ``EMAIL_PORT``.
 
+.. setting:: EMAIL_HOST_PASSWORD
+
 EMAIL_HOST_PASSWORD
 -------------------
 
@@ -491,10 +394,12 @@ Default: ``''`` (Empty string)
 Password to use for the SMTP server defined in ``EMAIL_HOST``. This setting is
 used in conjunction with ``EMAIL_HOST_USER`` when authenticating to the SMTP
 server. If either of these settings is empty, Django won't attempt
-authenticaion.
+authentication.
 
 See also ``EMAIL_HOST_USER``.
 
+.. setting:: EMAIL_HOST_USER
+
 EMAIL_HOST_USER
 ---------------
 
@@ -505,6 +410,8 @@ Django won't attempt authentication.
 
 See also ``EMAIL_HOST_PASSWORD``.
 
+.. setting:: EMAIL_PORT
+
 EMAIL_PORT
 ----------
 
@@ -512,6 +419,8 @@ Default: ``25``
 
 Port to use for the SMTP server defined in ``EMAIL_HOST``.
 
+.. setting:: EMAIL_SUBJECT_PREFIX
+
 EMAIL_SUBJECT_PREFIX
 --------------------
 
@@ -521,6 +430,8 @@ Subject-line prefix for e-mail messages sent with ``django.core.mail.mail_admins
 or ``django.core.mail.mail_managers``. You'll probably want to include the
 trailing space.
 
+.. setting:: EMAIL_USE_TLS
+
 EMAIL_USE_TLS
 -------------
 
@@ -530,6 +441,8 @@ Default: ``False``
 
 Whether to use a TLS (secure) connection when talking to the SMTP server.
 
+.. setting:: FILE_CHARSET
+
 FILE_CHARSET
 ------------
 
@@ -550,9 +463,7 @@ Default::
     ("django.core.files.uploadhandler.MemoryFileUploadHandler",
      "django.core.files.uploadhandler.TemporaryFileUploadHandler",)
 
-A tuple of handlers to use for uploading. See `file uploads`_ for details.
-
-.. _file uploads: ../upload_handling/
+A tuple of handlers to use for uploading. See :ref:`topics-files` for details.
 
 FILE_UPLOAD_MAX_MEMORY_SIZE
 ---------------------------
@@ -562,7 +473,7 @@ FILE_UPLOAD_MAX_MEMORY_SIZE
 Default: ``2621440`` (i.e. 2.5 MB).
 
 The maximum size (in bytes) that an upload will be before it gets streamed to
-the file system. See `file uploads`_ for details.
+the file system. See :ref:`topics-files` for details.
 
 FILE_UPLOAD_TEMP_DIR
 --------------------
@@ -575,7 +486,9 @@ The directory to store data temporarily while uploading files. If ``None``,
 Django will use the standard temporary directory for the operating system. For
 example, this will default to '/tmp' on \*nix-style operating systems.
 
-See `file uploads`_ for details.
+See :ref:`topics-files` for details.
+
+.. setting:: FIXTURE_DIRS
 
 FIXTURE_DIRS
 -------------
@@ -584,9 +497,7 @@ Default: ``()`` (Empty tuple)
 
 List of locations of the fixture data files, in search order. Note that
 these paths should use Unix-style forward slashes, even on Windows. See
-`Testing Django Applications`_.
-
-.. _Testing Django Applications: ../testing/
+:ref:`topics-testing`.
 
 FORCE_SCRIPT_NAME
 ------------------
@@ -598,6 +509,8 @@ environment variable in any HTTP request. This setting can be used to override
 the server-provided value of ``SCRIPT_NAME``, which may be a rewritten version
 of the preferred value or not supplied at all.
 
+.. setting:: IGNORABLE_404_ENDS
+
 IGNORABLE_404_ENDS
 ------------------
 
@@ -605,6 +518,8 @@ Default: ``('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico',
 
 See also ``IGNORABLE_404_STARTS`` and ``Error reporting via e-mail``.
 
+.. setting:: IGNORABLE_404_STARTS
+
 IGNORABLE_404_STARTS
 --------------------
 
@@ -612,7 +527,9 @@ Default: ``('/cgi-bin/', '/_vti_bin', '/_vti_inf')``
 
 A tuple of strings that specify beginnings of URLs that should be ignored by
 the 404 e-mailer. See ``SEND_BROKEN_LINK_EMAILS``, ``IGNORABLE_404_ENDS`` and
-the section on `error reporting via e-mail`_.
+the :ref:`howto-error-reporting`.
+
+.. setting:: INSTALLED_APPS
 
 INSTALLED_APPS
 --------------
@@ -621,9 +538,10 @@ Default: ``()`` (Empty tuple)
 
 A tuple of strings designating all applications that are enabled in this Django
 installation. Each string should be a full Python path to a Python package that
-contains a Django application, as created by `django-admin.py startapp`_.
+contains a Django application, as created by :djadmin:`django-admin.py startapp
+<startapp>`.
 
-.. _django-admin.py startapp: ../django-admin/#startapp-appname
+.. setting:: INTERNAL_IPS
 
 INTERNAL_IPS
 ------------
@@ -633,8 +551,10 @@ Default: ``()`` (Empty tuple)
 A tuple of IP addresses, as strings, that:
 
     * See debug comments, when ``DEBUG`` is ``True``
-    * Receive X headers if the ``XViewMiddleware`` is installed (see the
-      `middleware docs`_)
+    * Receive X headers if the ``XViewMiddleware`` is installed (see
+      :ref:`topics-http-middleware`)
+
+.. setting:: JING_PATH
 
 JING_PATH
 ---------
@@ -645,16 +565,18 @@ Path to the "Jing" executable. Jing is a RELAX NG validator, and Django uses it
 to validate each ``XMLField`` in your models.
 See http://www.thaiopensource.com/relaxng/jing.html .
 
+.. setting:: LANGUAGE_CODE
+
 LANGUAGE_CODE
 -------------
 
 Default: ``'en-us'``
 
-A string representing the language code for this installation. This should be
-in standard language format. For example, U.S. English is ``"en-us"``. See the
-`internationalization docs`_.
+A string representing the language code for this installation. This should be in
+standard language format. For example, U.S. English is ``"en-us"``. See
+:ref:`topics-i18n`.
 
-.. _internationalization docs: ../i18n/
+.. setting:: LANGUAGE_COOKIE_NAME
 
 LANGUAGE_COOKIE_NAME
 --------------------
@@ -663,9 +585,11 @@ LANGUAGE_COOKIE_NAME
 
 Default: ``'django_language'``
 
-The name of the cookie to use for the language cookie. This can be whatever
-you want (but should be different from ``SESSION_COOKIE_NAME``). See the
-`internationalization docs`_ for details.
+The name of the cookie to use for the language cookie. This can be whatever you
+want (but should be different from ``SESSION_COOKIE_NAME``). See
+:ref:`topics-i18n`.
+
+.. setting:: LANGUAGES
 
 LANGUAGES
 ---------
@@ -679,8 +603,7 @@ see the current list of translated languages by looking in
 
 The list is a tuple of two-tuples in the format (language code, language
 name) -- for example, ``('ja', 'Japanese')``. This specifies which languages
-are available for language selection. See the `internationalization docs`_ for
-details.
+are available for language selection. See :ref:`topics-i18n`.
 
 Generally, the default value should suffice. Only set this setting if you want
 to restrict language selection to a subset of the Django-provided languages.
@@ -707,16 +630,17 @@ mark these strings for translation, but the translation won't happen at
 runtime -- so you'll have to remember to wrap the languages in the *real*
 ``gettext()`` in any code that uses ``LANGUAGES`` at runtime.
 
+.. setting:: LOCALE_PATHS
+
 LOCALE_PATHS
 ------------
 
 Default: ``()`` (Empty tuple)
 
 A tuple of directories where Django looks for translation files.
-See the `internationalization docs section`_ explaining the variable and the
-default behavior.
+See :ref:`translations-in-your-own-projects`.
 
-.. _internationalization docs section: ../i18n/#using-translations-in-your-own-projects
+.. setting:: LOGIN_REDIRECT_URL
 
 LOGIN_REDIRECT_URL
 ------------------
@@ -728,7 +652,10 @@ Default: ``'/accounts/profile/'``
 The URL where requests are redirected after login when the
 ``contrib.auth.login`` view gets no ``next`` parameter.
 
-This is used by the `@login_required`_ decorator, for example.
+This is used by the :func:`~django.contrib.auth.decorators.login_required`
+decorator, for example.
+
+.. setting:: LOGIN_URL
 
 LOGIN_URL
 ---------
@@ -738,7 +665,9 @@ LOGIN_URL
 Default: ``'/accounts/login/'``
 
 The URL where requests are redirected for login, specially when using the
-`@login_required`_ decorator.
+:func:`~django.contrib.auth.decorators.login_required` decorator.
+
+.. setting:: LOGOUT_URL
 
 LOGOUT_URL
 ----------
@@ -749,6 +678,8 @@ Default: ``'/accounts/logout/'``
 
 LOGIN_URL counterpart.
 
+.. setting:: MANAGERS
+
 MANAGERS
 --------
 
@@ -757,6 +688,8 @@ Default: ``()`` (Empty tuple)
 A tuple in the same format as ``ADMINS`` that specifies who should get
 broken-link notifications when ``SEND_BROKEN_LINK_EMAILS=True``.
 
+.. setting:: MEDIA_ROOT
+
 MEDIA_ROOT
 ----------
 
@@ -765,6 +698,8 @@ Default: ``''`` (Empty string)
 Absolute path to the directory that holds media for this installation.
 Example: ``"/home/media/media.lawrence.com/"`` See also ``MEDIA_URL``.
 
+.. setting:: MEDIA_URL
+
 MEDIA_URL
 ---------
 
@@ -778,6 +713,8 @@ Note that this should have a trailing slash if it has a path component.
 Good: ``"http://www.example.com/static/"``
 Bad: ``"http://www.example.com/static"``
 
+.. setting:: MIDDLEWARE_CLASSES
+
 MIDDLEWARE_CLASSES
 ------------------
 
@@ -788,7 +725,9 @@ Default::
      "django.middleware.common.CommonMiddleware",
      "django.middleware.doc.XViewMiddleware")
 
-A tuple of middleware classes to use. See the `middleware docs`_.
+A tuple of middleware classes to use. See :ref:`topics-http-middleware`.
+
+.. setting:: MONTH_DAY_FORMAT
 
 MONTH_DAY_FORMAT
 ----------------
@@ -804,18 +743,22 @@ drilldown, the header for a given day displays the day and month. Different
 locales have different formats. For example, U.S. English would say
 "January 1," whereas Spanish might say "1 Enero."
 
-See `allowed date format strings`_. See also ``DATE_FORMAT``,
+See :ttag:`allowed date format strings <now>`. See also ``DATE_FORMAT``,
 ``DATETIME_FORMAT``, ``TIME_FORMAT`` and ``YEAR_MONTH_FORMAT``.
 
+.. setting:: PREPEND_WWW
+
 PREPEND_WWW
 -----------
 
 Default: ``False``
 
-Whether to prepend the "www." subdomain to URLs that don't have it. This is
-only used if ``CommonMiddleware`` is installed (see the `middleware docs`_).
+Whether to prepend the "www." subdomain to URLs that don't have it. This is only
+used if ``CommonMiddleware`` is installed (see :ref:`topics-http-middleware`).
 See also ``APPEND_SLASH``.
 
+.. setting:: PROFANITIES_LIST
+
 PROFANITIES_LIST
 ----------------
 
@@ -825,6 +768,8 @@ the ``hasNoProfanities`` validator is called.
 We don't list the default values here, because that would be profane. To see
 the default values, see the file ``django/conf/global_settings.py``.
 
+.. setting:: ROOT_URLCONF
+
 ROOT_URLCONF
 ------------
 
@@ -833,9 +778,9 @@ Default: Not defined
 A string representing the full Python import path to your root URLconf. For example:
 ``"mydjangoapps.urls"``. Can be overridden on a per-request basis by
 setting the attribute ``urlconf`` on the incoming ``HttpRequest``
-object. See `How Django processes a request`_ for details.
+object. See :ref:`how-django-processes-a-request` for details.
 
-.. _How Django processes a request: ../url_dispatch/#how-django-processes-a-request
+.. setting:: SECRET_KEY
 
 SECRET_KEY
 ----------
@@ -846,6 +791,8 @@ A secret key for this particular Django installation. Used to provide a seed in
 secret-key hashing algorithms. Set this to a random string -- the longer, the
 better. ``django-admin.py startproject`` creates one automatically.
 
+.. setting:: SEND_BROKEN_LINK_EMAILS
+
 SEND_BROKEN_LINK_EMAILS
 -----------------------
 
@@ -853,9 +800,11 @@ Default: ``False``
 
 Whether to send an e-mail to the ``MANAGERS`` each time somebody visits a
 Django-powered page that is 404ed with a non-empty referer (i.e., a broken
-link). This is only used if ``CommonMiddleware`` is installed (see the
-`middleware docs`_). See also ``IGNORABLE_404_STARTS``,
-``IGNORABLE_404_ENDS`` and the section on `error reporting via e-mail`_
+link). This is only used if ``CommonMiddleware`` is installed (see
+:ref:`topics-http-middleware`. See also ``IGNORABLE_404_STARTS``,
+``IGNORABLE_404_ENDS`` and :ref:`howto-error-reporting`.
+
+.. setting:: SERIALIZATION_MODULES
 
 SERIALIZATION_MODULES
 ---------------------
@@ -868,6 +817,8 @@ example, to define a YAML serializer, use::
 
     SERIALIZATION_MODULES = { 'yaml' : 'path.to.yaml_serializer' }
 
+.. setting:: SERVER_EMAIL
+
 SERVER_EMAIL
 ------------
 
@@ -876,6 +827,8 @@ Default: ``'root@localhost'``
 The e-mail address that error messages come from, such as those sent to
 ``ADMINS`` and ``MANAGERS``.
 
+.. setting:: SESSION_ENGINE
+
 SESSION_ENGINE
 --------------
 
@@ -889,14 +842,18 @@ Controls where Django stores session data. Valid values are:
     * ``'django.contrib.sessions.backends.file'``
     * ``'django.contrib.sessions.backends.cache'``
 
-See the `session docs`_ for more details.
+See :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_COOKIE_AGE
 
 SESSION_COOKIE_AGE
 ------------------
 
 Default: ``1209600`` (2 weeks, in seconds)
 
-The age of session cookies, in seconds. See the `session docs`_.
+The age of session cookies, in seconds. See :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_COOKIE_DOMAIN
 
 SESSION_COOKIE_DOMAIN
 ---------------------
@@ -905,7 +862,9 @@ Default: ``None``
 
 The domain to use for session cookies. Set this to a string such as
 ``".lawrence.com"`` for cross-domain cookies, or use ``None`` for a standard
-domain cookie. See the `session docs`_.
+domain cookie. See the :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_COOKIE_NAME
 
 SESSION_COOKIE_NAME
 -------------------
@@ -913,7 +872,9 @@ SESSION_COOKIE_NAME
 Default: ``'sessionid'``
 
 The name of the cookie to use for sessions. This can be whatever you want (but
-should be different from ``LANGUAGE_COOKIE_NAME``). See the `session docs`_.
+should be different from ``LANGUAGE_COOKIE_NAME``). See the :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_COOKIE_PATH
 
 SESSION_COOKIE_PATH
 -------------------
@@ -929,6 +890,8 @@ This is useful if you have multiple Django instances running under the same
 hostname. They can use different cookie paths, and each instance will only see
 its own session cookie.
 
+.. setting:: SESSION_COOKIE_SECURE
+
 SESSION_COOKIE_SECURE
 ---------------------
 
@@ -937,7 +900,9 @@ Default: ``False``
 Whether to use a secure cookie for the session cookie. If this is set to
 ``True``, the cookie will be marked as "secure," which means browsers may
 ensure that the cookie is only sent under an HTTPS connection.
-See the `session docs`_.
+See the :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_EXPIRE_AT_BROWSER_CLOSE
 
 SESSION_EXPIRE_AT_BROWSER_CLOSE
 -------------------------------
@@ -945,7 +910,9 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE
 Default: ``False``
 
 Whether to expire the session when the user closes his or her browser.
-See the `session docs`_.
+See the :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_FILE_PATH
 
 SESSION_FILE_PATH
 -----------------
@@ -955,15 +922,19 @@ SESSION_FILE_PATH
 Default: ``/tmp/``
 
 If you're using file-based session storage, this sets the directory in
-which Django will store session data. See the `session docs`_ for
-more details.
+which Django will store session data. See :ref:`topics-http-sessions`.
+
+.. setting:: SESSION_SAVE_EVERY_REQUEST
 
 SESSION_SAVE_EVERY_REQUEST
 --------------------------
 
 Default: ``False``
 
-Whether to save the session data on every request. See the `session docs`_.
+Whether to save the session data on every request. See
+:ref:`topics-http-sessions`.
+
+.. setting:: SITE_ID
 
 SITE_ID
 -------
@@ -974,10 +945,12 @@ The ID, as an integer, of the current site in the ``django_site`` database
 table. This is used so that application data can hook into specific site(s)
 and a single database can manage content for multiple sites.
 
-See the `site framework docs`_.
+See :ref:`ref-contrib-sites`.
 
 .. _site framework docs: ../sites/
 
+.. setting:: TEMPLATE_CONTEXT_PROCESSORS
+
 TEMPLATE_CONTEXT_PROCESSORS
 ---------------------------
 
@@ -992,6 +965,8 @@ A tuple of callables that are used to populate the context in ``RequestContext``
 These callables take a request object as their argument and return a dictionary
 of items to be merged into the context.
 
+.. setting:: TEMPLATE_DEBUG
+
 TEMPLATE_DEBUG
 --------------
 
@@ -1007,6 +982,8 @@ you'll want to set that to take advantage of this setting.
 
 See also ``DEBUG``.
 
+.. setting:: TEMPLATE_DIRS
+
 TEMPLATE_DIRS
 -------------
 
@@ -1015,18 +992,22 @@ Default: ``()`` (Empty tuple)
 List of locations of the template source files, in search order. Note that
 these paths should use Unix-style forward slashes, even on Windows.
 
-See the `template documentation`_.
+See :ref:`topics-templates`..
+
+.. setting:: TEMPLATE_LOADERS
 
 TEMPLATE_LOADERS
 ----------------
 
-Default::
+Default:
 
      ('django.template.loaders.filesystem.load_template_source',
       'django.template.loaders.app_directories.load_template_source')
 
 A tuple of callables (as strings) that know how to import templates from
-various sources. See the `template documentation`_.
+various sources. See :ref:`ref-templates-api`.
+
+.. setting:: TEMPLATE_STRING_IF_INVALID
 
 TEMPLATE_STRING_IF_INVALID
 --------------------------
@@ -1034,9 +1015,9 @@ TEMPLATE_STRING_IF_INVALID
 Default: ``''`` (Empty string)
 
 Output, as a string, that the template system should use for invalid (e.g.
-misspelled) variables. See `How invalid variables are handled`_.
+misspelled) variables. See :ref:`invalid-template-variables`..
 
-.. _How invalid variables are handled: ../templates_python/#how-invalid-variables-are-handled
+.. setting:: TEST_DATABASE_CHARSET
 
 TEST_DATABASE_CHARSET
 ---------------------
@@ -1054,6 +1035,8 @@ Supported for the PostgreSQL_ (``postgresql``, ``postgresql_psycopg2``) and MySQ
 .. _PostgreSQL: http://www.postgresql.org/docs/8.2/static/multibyte.html
 .. _MySQL: http://www.mysql.org/doc/refman/5.0/en/charset-database.html
 
+.. setting:: TEST_DATABASE_COLLATION
+
 TEST_DATABASE_COLLATION
 ------------------------
 
@@ -1069,6 +1052,8 @@ manual for details).
 
 .. _section 10.3.2: http://www.mysql.org/doc/refman/5.0/en/charset-database.html
 
+.. setting:: TEST_DATABASE_NAME
+
 TEST_DATABASE_NAME
 ------------------
 
@@ -1080,9 +1065,9 @@ If the default value (``None``) is used with the SQLite database engine, the
 tests will use a memory resident database. For all other database engines the
 test database will use the name ``'test_' + settings.DATABASE_NAME``.
 
-See `Testing Django Applications`_.
+See :ref:`topics-testing`.
 
-.. _Testing Django Applications: ../testing/
+.. setting:: TEST_RUNNER
 
 TEST_RUNNER
 -----------
@@ -1090,10 +1075,12 @@ TEST_RUNNER
 Default: ``'django.test.simple.run_tests'``
 
 The name of the method to use for starting the test suite. See
-`Testing Django Applications`_.
+:ref:`topics-testing`.
 
 .. _Testing Django Applications: ../testing/
 
+.. setting:: TIME_FORMAT
+
 TIME_FORMAT
 -----------
 
@@ -1101,12 +1088,12 @@ Default: ``'P'`` (e.g. ``4 p.m.``)
 
 The default formatting to use for time fields on Django admin change-list
 pages -- and, possibly, by other parts of the system. See
-`allowed date format strings`_.
+:ttag:`allowed date format strings <now>`.
 
 See also ``DATE_FORMAT``, ``DATETIME_FORMAT``, ``TIME_FORMAT``,
 ``YEAR_MONTH_FORMAT`` and ``MONTH_DAY_FORMAT``.
 
-.. _allowed date format strings: ../templates/#now
+.. setting:: TIME_ZONE
 
 TIME_ZONE
 ---------
@@ -1124,7 +1111,7 @@ not necessarily the timezone of the server. For example, one server may serve
 multiple Django-powered sites, each with a separate time-zone setting.
 
 Normally, Django sets the ``os.environ['TZ']`` variable to the time zone you
-specify in the  ``TIME_ZONE`` setting. Thus, all your views and models will
+specify in the ``TIME_ZONE`` setting. Thus, all your views and models will
 automatically operate in the correct time zone. However, if you're using the
 manual configuration option (see below), Django will *not* touch the ``TZ``
 environment variable, and it'll be up to you to ensure your processes are
@@ -1134,6 +1121,10 @@ running in the correct environment.
     Django cannot reliably use alternate time zones in a Windows environment.
     If you're running Django on Windows, this variable must be set to match the
     system timezone.
+    
+.. _See available choices: http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
+
+.. setting:: URL_VALIDATOR_USER_AGENT
 
 URL_VALIDATOR_USER_AGENT
 ------------------------
@@ -1141,9 +1132,9 @@ URL_VALIDATOR_USER_AGENT
 Default: ``Django/<version> (http://www.djangoproject.com/)``
 
 The string to use as the ``User-Agent`` header when checking to see if URLs
-exist (see the ``verify_exists`` option on URLField_).
+exist (see the ``verify_exists`` option on :class:`~django.db.models.URLField`).
 
-.. _URLField: ../model-api/#urlfield
+.. setting:: USE_ETAGS
 
 USE_ETAGS
 ---------
@@ -1152,7 +1143,9 @@ Default: ``False``
 
 A boolean that specifies whether to output the "Etag" header. This saves
 bandwidth but slows down performance. This is only used if ``CommonMiddleware``
-is installed (see the `middleware docs`_).
+is installed (see :ref:`topics-http-middleware`).
+
+.. setting:: USE_I18N
 
 USE_I18N
 --------
@@ -1164,6 +1157,8 @@ enabled. This provides an easy way to turn it off, for performance. If this is
 set to ``False``, Django will make some optimizations so as not to load the
 internationalization machinery.
 
+.. setting:: YEAR_MONTH_FORMAT
+
 YEAR_MONTH_FORMAT
 -----------------
 
@@ -1178,141 +1173,5 @@ drilldown, the header for a given month displays the month and the year.
 Different locales have different formats. For example, U.S. English would say
 "January 2006," whereas another locale might say "2006/January."
 
-See `allowed date format strings`_. See also ``DATE_FORMAT``,
+See :ttag:`allowed date format strings <now>`. See also ``DATE_FORMAT``,
 ``DATETIME_FORMAT``, ``TIME_FORMAT`` and ``MONTH_DAY_FORMAT``.
-
-.. _cache docs: ../cache/
-.. _middleware docs: ../middleware/
-.. _session docs: ../sessions/
-.. _See available choices: http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
-.. _template documentation: ../templates_python/
-
-Creating your own settings
-==========================
-
-There's nothing stopping you from creating your own settings, for your own
-Django apps. Just follow these conventions:
-
-    * Setting names are in all uppercase.
-    * For settings that are sequences, use tuples instead of lists. This is
-      purely for performance.
-    * Don't reinvent an already-existing setting.
-
-Using settings without setting DJANGO_SETTINGS_MODULE
-=====================================================
-
-In some cases, you might want to bypass the ``DJANGO_SETTINGS_MODULE``
-environment variable. For example, if you're using the template system by
-itself, you likely don't want to have to set up an environment variable
-pointing to a settings module.
-
-In these cases, you can configure Django's settings manually. Do this by
-calling ``django.conf.settings.configure()``.
-
-Example::
-
-    from django.conf import settings
-
-    settings.configure(DEBUG=True, TEMPLATE_DEBUG=True,
-        TEMPLATE_DIRS=('/home/web-apps/myapp', '/home/web-apps/base'))
-
-Pass ``configure()`` as many keyword arguments as you'd like, with each keyword
-argument representing a setting and its value. Each argument name should be all
-uppercase, with the same name as the settings described above. If a particular
-setting is not passed to ``configure()`` and is needed at some later point,
-Django will use the default setting value.
-
-Configuring Django in this fashion is mostly necessary -- and, indeed,
-recommended -- when you're using a piece of the framework inside a larger
-application.
-
-Consequently, when configured via ``settings.configure()``, Django will not
-make any modifications to the process environment variables. (See the
-explanation of ``TIME_ZONE``, above, for why this would normally occur.) It's
-assumed that you're already in full control of your environment in these cases.
-
-Custom default settings
------------------------
-
-If you'd like default values to come from somewhere other than
-``django.conf.global_settings``, you can pass in a module or class that
-provides the default settings as the ``default_settings`` argument (or as the
-first positional argument) in the call to ``configure()``.
-
-In this example, default settings are taken from ``myapp_defaults``, and the
-``DEBUG`` setting is set to ``True``, regardless of its value in
-``myapp_defaults``::
-
-    from django.conf import settings
-    from myapp import myapp_defaults
-
-    settings.configure(default_settings=myapp_defaults, DEBUG=True)
-
-The following example, which uses ``myapp_defaults`` as a positional argument,
-is equivalent::
-
-    settings.configure(myapp_defaults, DEBUG = True)
-
-Normally, you will not need to override the defaults in this fashion. The
-Django defaults are sufficiently tame that you can safely use them. Be aware
-that if you do pass in a new default module, it entirely *replaces* the Django
-defaults, so you must specify a value for every possible setting that might be
-used in that code you are importing. Check in
-``django.conf.settings.global_settings`` for the full list.
-
-Either configure() or DJANGO_SETTINGS_MODULE is required
---------------------------------------------------------
-
-If you're not setting the ``DJANGO_SETTINGS_MODULE`` environment variable, you
-*must* call ``configure()`` at some point before using any code that reads
-settings.
-
-If you don't set ``DJANGO_SETTINGS_MODULE`` and don't call ``configure()``,
-Django will raise an ``ImportError`` exception the first time a setting
-is accessed.
-
-If you set ``DJANGO_SETTINGS_MODULE``, access settings values somehow, *then*
-call ``configure()``, Django will raise a ``RuntimeError`` indicating
-that settings have already been configured.
-
-Also, it's an error to call ``configure()`` more than once, or to call
-``configure()`` after any setting has been accessed.
-
-It boils down to this: Use exactly one of either ``configure()`` or
-``DJANGO_SETTINGS_MODULE``. Not both, and not neither.
-
-.. _@login_required: ../authentication/#the-login-required-decorator
-
-Error reporting via e-mail
-==========================
-
-Server errors
--------------
-
-When ``DEBUG`` is ``False``, Django will e-mail the users listed in the
-``ADMINS`` setting whenever your code raises an unhandled exception and results
-in an internal server error (HTTP status code 500). This gives the
-administrators immediate notification of any errors.
-
-To disable this behavior, just remove all entries from the ``ADMINS`` setting.
-
-404 errors
-----------
-
-When ``DEBUG`` is ``False``, ``SEND_BROKEN_LINK_EMAILS`` is ``True`` and your
-``MIDDLEWARE_CLASSES`` setting includes ``CommonMiddleware``, Django will
-e-mail the users listed in the ``MANAGERS`` setting whenever your code raises
-a 404 and the request has a referer. (It doesn't bother to e-mail for 404s
-that don't have a referer.)
-
-You can tell Django to stop reporting particular 404s by tweaking the
-``IGNORABLE_404_ENDS`` and ``IGNORABLE_404_STARTS`` settings. Both should be a
-tuple of strings. For example::
-
-    IGNORABLE_404_ENDS = ('.php', '.cgi')
-    IGNORABLE_404_STARTS = ('/phpmyadmin/',)
-
-In this example, a 404 to any URL ending with ``.php`` or ``.cgi`` will *not*
-be reported. Neither will any URL starting with ``/phpmyadmin/``.
-
-To disable this behavior, just remove all entries from the ``MANAGERS`` setting.
diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt
new file mode 100644
index 0000000000..c78f130972
--- /dev/null
+++ b/docs/ref/templates/api.txt
@@ -0,0 +1,612 @@
+.. _ref-templates-api:
+
+====================================================
+The Django template language: For Python programmers
+====================================================
+
+This document explains the Django template system from a technical
+perspective -- how it works and how to extend it. If you're just looking for
+reference on the language syntax, see :ref:`topics-templates`.
+
+If you're looking to use the Django template system as part of another
+application -- i.e., without the rest of the framework -- make sure to read
+the `configuration`_ section later in this document.
+
+.. _configuration: `configuring the template system in standalone mode`_
+
+Basics
+======
+
+A **template** is a text document, or a normal Python string, that is marked-up
+using the Django template language. A template can contain **block tags** or
+**variables**.
+
+A **block tag** is a symbol within a template that does something.
+
+This definition is deliberately vague. For example, a block tag can output
+content, serve as a control structure (an "if" statement or "for" loop), grab
+content from a database or enable access to other template tags.
+
+Block tags are surrounded by ``"{%"`` and ``"%}"``.
+
+Example template with block tags::
+
+    {% if is_logged_in %}Thanks for logging in!{% else %}Please log in.{% endif %}
+
+A **variable** is a symbol within a template that outputs a value.
+
+Variable tags are surrounded by ``"{{"`` and ``"}}"``.
+
+Example template with variables::
+
+    My first name is {{ first_name }}. My last name is {{ last_name }}.
+
+A **context** is a "variable name" -> "variable value" mapping that is passed
+to a template.
+
+A template **renders** a context by replacing the variable "holes" with values
+from the context and executing all block tags.
+
+Using the template system
+=========================
+
+Using the template system in Python is a two-step process:
+
+    * First, you compile the raw template code into a ``Template`` object.
+    * Then, you call the ``render()`` method of the ``Template`` object with a
+      given context.
+
+Compiling a string
+------------------
+
+The easiest way to create a ``Template`` object is by instantiating it
+directly. The class lives at ``django.template.Template``. The constructor
+takes one argument -- the raw template code::
+
+    >>> from django.template import Template
+    >>> t = Template("My name is {{ my_name }}.")
+    >>> print t
+    <django.template.Template instance>
+
+.. admonition:: Behind the scenes
+
+    The system only parses your raw template code once -- when you create the
+    ``Template`` object. From then on, it's stored internally as a "node"
+    structure for performance.
+
+    Even the parsing itself is quite fast. Most of the parsing happens via a
+    single call to a single, short, regular expression.
+
+Rendering a context
+-------------------
+
+Once you have a compiled ``Template`` object, you can render a context -- or
+multiple contexts -- with it. The ``Context`` class lives at
+``django.template.Context``, and the constructor takes one (optional)
+argument: a dictionary mapping variable names to variable values. Call the
+``Template`` object's ``render()`` method with the context to "fill" the
+template::
+
+    >>> from django.template import Context, Template
+    >>> t = Template("My name is {{ my_name }}.")
+
+    >>> c = Context({"my_name": "Adrian"})
+    >>> t.render(c)
+    "My name is Adrian."
+
+    >>> c = Context({"my_name": "Dolores"})
+    >>> t.render(c)
+    "My name is Dolores."
+
+Variable names must consist of any letter (A-Z), any digit (0-9), an underscore
+or a dot.
+
+Dots have a special meaning in template rendering. A dot in a variable name
+signifies **lookup**. Specifically, when the template system encounters a dot
+in a variable name, it tries the following lookups, in this order:
+
+    * Dictionary lookup. Example: ``foo["bar"]``
+    * Attribute lookup. Example: ``foo.bar``
+    * Method call. Example: ``foo.bar()``
+    * List-index lookup. Example: ``foo[bar]``
+
+The template system uses the first lookup type that works. It's short-circuit
+logic.
+
+Here are a few examples::
+
+    >>> from django.template import Context, Template
+    >>> t = Template("My name is {{ person.first_name }}.")
+    >>> d = {"person": {"first_name": "Joe", "last_name": "Johnson"}}
+    >>> t.render(Context(d))
+    "My name is Joe."
+
+    >>> class PersonClass: pass
+    >>> p = PersonClass()
+    >>> p.first_name = "Ron"
+    >>> p.last_name = "Nasty"
+    >>> t.render(Context({"person": p}))
+    "My name is Ron."
+
+    >>> class PersonClass2:
+    ...     def first_name(self):
+    ...         return "Samantha"
+    >>> p = PersonClass2()
+    >>> t.render(Context({"person": p}))
+    "My name is Samantha."
+
+    >>> t = Template("The first stooge in the list is {{ stooges.0 }}.")
+    >>> c = Context({"stooges": ["Larry", "Curly", "Moe"]})
+    >>> t.render(c)
+    "The first stooge in the list is Larry."
+
+Method lookups are slightly more complex than the other lookup types. Here are
+some things to keep in mind:
+
+    * If, during the method lookup, a method raises an exception, the exception
+      will be propagated, unless the exception has an attribute
+      ``silent_variable_failure`` whose value is ``True``. If the exception
+      *does* have a ``silent_variable_failure`` attribute, the variable will
+      render as an empty string. Example::
+
+        >>> t = Template("My name is {{ person.first_name }}.")
+        >>> class PersonClass3:
+        ...     def first_name(self):
+        ...         raise AssertionError, "foo"
+        >>> p = PersonClass3()
+        >>> t.render(Context({"person": p}))
+        Traceback (most recent call last):
+        ...
+        AssertionError: foo
+
+        >>> class SilentAssertionError(Exception):
+        ...     silent_variable_failure = True
+        >>> class PersonClass4:
+        ...     def first_name(self):
+        ...         raise SilentAssertionError
+        >>> p = PersonClass4()
+        >>> t.render(Context({"person": p}))
+        "My name is ."
+
+      Note that ``django.core.exceptions.ObjectDoesNotExist``, which is the
+      base class for all Django database API ``DoesNotExist`` exceptions, has
+      ``silent_variable_failure = True``. So if you're using Django templates
+      with Django model objects, any ``DoesNotExist`` exception will fail
+      silently.
+
+    * A method call will only work if the method has no required arguments.
+      Otherwise, the system will move to the next lookup type (list-index
+      lookup).
+
+    * Obviously, some methods have side effects, and it'd be either foolish or
+      a security hole to allow the template system to access them.
+
+      A good example is the ``delete()`` method on each Django model object.
+      The template system shouldn't be allowed to do something like this::
+
+        I will now delete this valuable data. {{ data.delete }}
+
+      To prevent this, set a function attribute ``alters_data`` on the method.
+      The template system won't execute a method if the method has
+      ``alters_data=True`` set. The dynamically-generated ``delete()`` and
+      ``save()`` methods on Django model objects get ``alters_data=True``
+      automatically. Example::
+
+        def sensitive_function(self):
+            self.database_record.delete()
+        sensitive_function.alters_data = True
+
+.. _invalid-template-variables:
+
+How invalid variables are handled
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Generally, if a variable doesn't exist, the template system inserts the
+value of the :setting:`TEMPLATE_STRING_IF_INVALID` setting, which is set to
+``''`` (the empty string) by default.
+
+Filters that are applied to an invalid variable will only be applied if
+:setting:`TEMPLATE_STRING_IF_INVALID` is set to ``''`` (the empty string). If
+:setting:`TEMPLATE_STRING_IF_INVALID` is set to any other value, variable
+filters will be ignored.
+
+This behavior is slightly different for the ``if``, ``for`` and ``regroup``
+template tags. If an invalid variable is provided to one of these template
+tags, the variable will be interpreted as ``None``. Filters are always
+applied to invalid variables within these template tags.
+
+If :setting:`TEMPLATE_STRING_IF_INVALID` contains a ``'%s'``, the format marker will
+be replaced with the name of the invalid variable.
+
+.. admonition:: For debug purposes only!
+
+    While :setting:`TEMPLATE_STRING_IF_INVALID` can be a useful debugging tool,
+    it is a bad idea to turn it on as a 'development default'.
+
+    Many templates, including those in the Admin site, rely upon the
+    silence of the template system when a non-existent variable is
+    encountered. If you assign a value other than ``''`` to
+    :setting:`TEMPLATE_STRING_IF_INVALID`, you will experience rendering
+    problems with these templates and sites.
+
+    Generally, :setting:`TEMPLATE_STRING_IF_INVALID` should only be enabled
+    in order to debug a specific template problem, then cleared
+    once debugging is complete.
+
+Playing with Context objects
+----------------------------
+
+Most of the time, you'll instantiate ``Context`` objects by passing in a
+fully-populated dictionary to ``Context()``. But you can add and delete items
+from a ``Context`` object once it's been instantiated, too, using standard
+dictionary syntax::
+
+    >>> c = Context({"foo": "bar"})
+    >>> c['foo']
+    'bar'
+    >>> del c['foo']
+    >>> c['foo']
+    ''
+    >>> c['newvariable'] = 'hello'
+    >>> c['newvariable']
+    'hello'
+
+A ``Context`` object is a stack. That is, you can ``push()`` and ``pop()`` it.
+If you ``pop()`` too much, it'll raise
+``django.template.ContextPopException``::
+
+    >>> c = Context()
+    >>> c['foo'] = 'first level'
+    >>> c.push()
+    >>> c['foo'] = 'second level'
+    >>> c['foo']
+    'second level'
+    >>> c.pop()
+    >>> c['foo']
+    'first level'
+    >>> c['foo'] = 'overwritten'
+    >>> c['foo']
+    'overwritten'
+    >>> c.pop()
+    Traceback (most recent call last):
+    ...
+    django.template.ContextPopException
+
+Using a ``Context`` as a stack comes in handy in some custom template tags, as
+you'll see below.
+
+.. _subclassing-context-requestcontext:
+
+Subclassing Context: RequestContext
+-----------------------------------
+
+Django comes with a special ``Context`` class,
+``django.template.RequestContext``, that acts slightly differently than the
+normal ``django.template.Context``. The first difference is that it takes an
+:class:`~django.http.HttpRequest` as its first argument. For example::
+
+    c = RequestContext(request, {
+        'foo': 'bar',
+    }
+
+The second difference is that it automatically populates the context with a few
+variables, according to your :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting`.
+
+The :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting is a tuple of callables --
+called **context processors** -- that take a request object as their argument
+and return a dictionary of items to be merged into the context. By default,
+:setting:`TEMPLATE_CONTEXT_PROCESSORS` is set to::
+
+    ("django.core.context_processors.auth",
+    "django.core.context_processors.debug",
+    "django.core.context_processors.i18n",
+    "django.core.context_processors.media")
+
+Each processor is applied in order. That means, if one processor adds a
+variable to the context and a second processor adds a variable with the same
+name, the second will override the first. The default processors are explained
+below.
+
+Also, you can give ``RequestContext`` a list of additional processors, using the
+optional, third positional argument, ``processors``. In this example, the
+``RequestContext`` instance gets a ``ip_address`` variable::
+
+    def ip_address_processor(request):
+        return {'ip_address': request.META['REMOTE_ADDR']}
+
+    def some_view(request):
+        # ...
+        c = RequestContext(request, {
+            'foo': 'bar',
+        }, [ip_address_processor])
+        return t.render(c)
+
+.. note::
+    If you're using Django's ``render_to_response()`` shortcut to populate a
+    template with the contents of a dictionary, your template will be passed a
+    ``Context`` instance by default (not a ``RequestContext``). To use a
+    ``RequestContext`` in your template rendering, pass an optional third
+    argument to ``render_to_response()``: a ``RequestContext``
+    instance. Your code might look like this::
+
+        def some_view(request):
+            # ...
+            return render_to_response('my_template.html',
+                                      my_data_dictionary,
+                                      context_instance=RequestContext(request))
+
+Here's what each of the default processors does:
+
+django.core.context_processors.auth
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
+``RequestContext`` will contain these three variables:
+
+    * ``user`` -- An ``auth.User`` instance representing the currently
+      logged-in user (or an ``AnonymousUser`` instance, if the client isn't
+      logged in).
+
+    * ``messages`` -- A list of messages (as strings) for the currently
+      logged-in user. Behind the scenes, this calls
+      ``request.user.get_and_delete_messages()`` for every request. That method
+      collects the user's messages and deletes them from the database.
+
+      Note that messages are set with ``user.message_set.create``.
+
+    * ``perms`` -- An instance of
+      ``django.core.context_processors.PermWrapper``, representing the
+      permissions that the currently logged-in user has.
+
+django.core.context_processors.debug
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
+``RequestContext`` will contain these two variables -- but only if your
+:setting:`DEBUG` setting is set to ``True`` and the request's IP address
+(``request.META['REMOTE_ADDR']``) is in the :setting:`INTERNAL_IPS` setting:
+
+    * ``debug`` -- ``True``. You can use this in templates to test whether
+      you're in :setting:`DEBUG` mode.
+    * ``sql_queries`` -- A list of ``{'sql': ..., 'time': ...}`` dictionaries,
+      representing every SQL query that has happened so far during the request
+      and how long it took. The list is in order by query.
+
+django.core.context_processors.i18n
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
+``RequestContext`` will contain these two variables:
+
+    * ``LANGUAGES`` -- The value of the :setting:`LANGUAGES` setting.
+    * ``LANGUAGE_CODE`` -- ``request.LANGUAGE_CODE``, if it exists. Otherwise,
+      the value of the :setting:`LANGUAGE_CODE` setting`.
+
+See :ref:`topics-i18n` for more.
+
+django.core.context_processors.media
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version**
+
+If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
+``RequestContext`` will contain a variable ``MEDIA_URL``, providing the
+value of the :setting:`MEDIA_URL` setting.
+
+django.core.context_processors.request
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
+``RequestContext`` will contain a variable ``request``, which is the current
+:class:`~django.http.HttpRequest`. Note that this processor is not enabled by default;
+you'll have to activate it.
+
+Writing your own context processors
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A context processor has a very simple interface: It's just a Python function
+that takes one argument, an ``HttpRequest`` object, and returns a dictionary
+that gets added to the template context. Each context processor *must* return
+a dictionary.
+
+Custom context processors can live anywhere in your code base. All Django cares
+about is that your custom context processors are pointed-to by your
+:setting:`TEMPLATE_CONTEXT_PROCESSORS` setting.
+
+Loading templates
+-----------------
+
+Generally, you'll store templates in files on your filesystem rather than using
+the low-level ``Template`` API yourself. Save templates in a directory
+specified as a **template directory**.
+
+Django searches for template directories in a number of places, depending on
+your template-loader settings (see "Loader types" below), but the most basic
+way of specifying template directories is by using the :setting:`TEMPLATE_DIRS`
+setting.
+
+The TEMPLATE_DIRS setting
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Tell Django what your template directories are by using the
+:setting:`TEMPLATE_DIRS` setting in your settings file. This should be set to a
+list or tuple of strings that contain full paths to your template
+directory(ies). Example::
+
+    TEMPLATE_DIRS = (
+        "/home/html/templates/lawrence.com",
+        "/home/html/templates/default",
+    )
+
+Your templates can go anywhere you want, as long as the directories and
+templates are readable by the Web server. They can have any extension you want,
+such as ``.html`` or ``.txt``, or they can have no extension at all.
+
+Note that these paths should use Unix-style forward slashes, even on Windows.
+
+.. _ref-templates-api-the-python-api:
+
+The Python API
+~~~~~~~~~~~~~~
+
+Django has two ways to load templates from files:
+
+``django.template.loader.get_template(template_name)``
+    ``get_template`` returns the compiled template (a ``Template`` object) for
+    the template with the given name. If the template doesn't exist, it raises
+    ``django.template.TemplateDoesNotExist``.
+
+``django.template.loader.select_template(template_name_list)``
+    ``select_template`` is just like ``get_template``, except it takes a list
+    of template names. Of the list, it returns the first template that exists.
+
+For example, if you call ``get_template('story_detail.html')`` and have the
+above :setting:`TEMPLATE_DIRS` setting, here are the files Django will look for,
+in order:
+
+    * ``/home/html/templates/lawrence.com/story_detail.html``
+    * ``/home/html/templates/default/story_detail.html``
+
+If you call ``select_template(['story_253_detail.html', 'story_detail.html'])``,
+here's what Django will look for:
+
+    * ``/home/html/templates/lawrence.com/story_253_detail.html``
+    * ``/home/html/templates/default/story_253_detail.html``
+    * ``/home/html/templates/lawrence.com/story_detail.html``
+    * ``/home/html/templates/default/story_detail.html``
+
+When Django finds a template that exists, it stops looking.
+
+.. admonition:: Tip
+
+    You can use ``select_template()`` for super-flexible "templatability." For
+    example, if you've written a news story and want some stories to have
+    custom templates, use something like
+    ``select_template(['story_%s_detail.html' % story.id, 'story_detail.html'])``.
+    That'll allow you to use a custom template for an individual story, with a
+    fallback template for stories that don't have custom templates.
+
+Using subdirectories
+~~~~~~~~~~~~~~~~~~~~
+
+It's possible -- and preferable -- to organize templates in subdirectories of
+the template directory. The convention is to make a subdirectory for each
+Django app, with subdirectories within those subdirectories as needed.
+
+Do this for your own sanity. Storing all templates in the root level of a
+single directory gets messy.
+
+To load a template that's within a subdirectory, just use a slash, like so::
+
+    get_template('news/story_detail.html')
+
+Using the same :setting:`TEMPLATE_DIRS` setting from above, this example
+``get_template()`` call will attempt to load the following templates:
+
+    * ``/home/html/templates/lawrence.com/news/story_detail.html``
+    * ``/home/html/templates/default/news/story_detail.html``
+
+.. _template-loaders:
+
+Loader types
+~~~~~~~~~~~~
+
+By default, Django uses a filesystem-based template loader, but Django comes
+with a few other template loaders, which know how to load templates from other
+sources.
+
+These other loaders are disabled by default, but you can activate them by
+editing your :setting:`TEMPLATE_LOADERS` setting. :setting:`TEMPLATE_LOADERS`
+should be a tuple of strings, where each string represents a template loader.
+Here are the template loaders that come with Django:
+
+``django.template.loaders.filesystem.load_template_source``
+    Loads templates from the filesystem, according to :setting:`TEMPLATE_DIRS`.
+
+``django.template.loaders.app_directories.load_template_source``
+    Loads templates from Django apps on the filesystem. For each app in
+    :setting:`INSTALLED_APPS`, the loader looks for a ``templates`` subdirectory. If
+    the directory exists, Django looks for templates in there.
+
+    This means you can store templates with your individual apps. This also
+    makes it easy to distribute Django apps with default templates.
+
+    For example, for this setting::
+
+        INSTALLED_APPS = ('myproject.polls', 'myproject.music')
+
+    ...then ``get_template('foo.html')`` will look for templates in these
+    directories, in this order:
+
+        * ``/path/to/myproject/polls/templates/foo.html``
+        * ``/path/to/myproject/music/templates/foo.html``
+
+    Note that the loader performs an optimization when it is first imported:
+    It caches a list of which :setting:`INSTALLED_APPS` packages have a ``templates``
+    subdirectory.
+
+``django.template.loaders.eggs.load_template_source``
+    Just like ``app_directories`` above, but it loads templates from Python
+    eggs rather than from the filesystem.
+
+Django uses the template loaders in order according to the :setting:`TEMPLATE_LOADERS`
+setting. It uses each loader until a loader finds a match.
+
+The ``render_to_string()`` shortcut
+===================================
+
+To cut down on the repetitive nature of loading and rendering
+templates, Django provides a shortcut function which largely
+automates the process: ``render_to_string()`` in
+``django.template.loader``, which loads a template, renders it and
+returns the resulting string::
+
+    from django.template.loader import render_to_string
+    rendered = render_to_string('my_template.html', { 'foo': 'bar' })
+
+The ``render_to_string`` shortcut takes one required argument --
+``template_name``, which should be the name of the template to load
+and render -- and two optional arguments::
+
+    dictionary
+        A dictionary to be used as variables and values for the
+        template's context. This can also be passed as the second
+        positional argument.
+
+    context_instance
+        An instance of ``Context`` or a subclass (e.g., an instance of
+        ``RequestContext``) to use as the template's context. This can
+        also be passed as the third positional argument.
+
+See also the :func:`~django.shortcuts.render_to_response()` shortcut, which
+calls ``render_to_string`` and feeds the result into an ``HttpResponse``
+suitable for returning directly from a view.
+
+Configuring the template system in standalone mode
+==================================================
+
+.. note::
+
+    This section is only of interest to people trying to use the template
+    system as an output component in another application. If you're using the
+    template system as part of a Django application, nothing here applies to
+    you.
+
+Normally, Django will load all the configuration information it needs from its
+own default configuration file, combined with the settings in the module given
+in the :setting:`DJANGO_SETTINGS_MODULE` environment variable. But if you're
+using the template system independently of the rest of Django, the environment
+variable approach isn't very convenient, because you probably want to configure
+the template system in line with the rest of your application rather than
+dealing with settings files and pointing to them via environment variables.
+
+To solve this problem, you need to use the manual configuration option described
+in :ref:`settings-without-django-settings-module`. Simply import the appropriate
+pieces of the templating system and then, *before* you call any of the
+templating functions, call ``django.conf.settings.configure()`` with any
+settings you wish to specify. You might want to consider setting at least
+:setting:`TEMPLATE_DIRS` (if you're going to use template loaders),
+:setting:`DEFAULT_CHARSET` (although the default of ``utf-8`` is probably fine)
+and :setting:`TEMPLATE_DEBUG`. All available settings are described in the
+:ref:`settings documentation <ref-settings>`, and any setting starting with
+``TEMPLATE_`` is of obvious interest.
diff --git a/docs/templates.txt b/docs/ref/templates/builtins.txt
similarity index 63%
rename from docs/templates.txt
rename to docs/ref/templates/builtins.txt
index 99dbcb84b4..feca435ffe 100644
--- a/docs/templates.txt
+++ b/docs/ref/templates/builtins.txt
@@ -1,567 +1,21 @@
-==================================================
-The Django template language: For template authors
-==================================================
+.. _ref-templates-builtins:
 
-.. admonition:: About this document
+==================================
+Built-in template tags and filters
+==================================
 
-    This document explains the language syntax of the Django template system. If
-    you're looking for a more technical perspective on how it works and how to
-    extend it, see `The Django template language: For Python programmers`_.
+This document describes Django's built-in template tags and filters. It is
+recommended that you use the :ref:`automatic documentation
+<template-built-in-reference>`, if available, as this will also include
+documentation for any custom tags or filters installed.
 
-Django's template language is designed to strike a balance between power and
-ease. It's designed to feel comfortable to those used to working with HTML. If
-you have any exposure to other text-based template languages, such as Smarty_
-or CheetahTemplate_, you should feel right at home with Django's templates.
-
-.. admonition:: Philosophy
-
-    If you have a background in programming, or if you're used to languages
-    like PHP which mix programming code directly into HTML, you'll want to
-    bear in mind that the Django template system is not simply Python embedded
-    into HTML. This is by design: the template system is meant to express
-    presentation, not program logic.
-
-    The Django template system provides tags which function similarly to some
-    programming constructs -- an ``{% if %}`` tag for boolean tests, a ``{%
-    for %}`` tag for looping, etc. -- but these are not simply executed as the
-    corresponding Python code, and the template system will not execute
-    arbitrary Python expressions. Only the tags, filters and syntax listed
-    below are supported by default (although you can add `your own
-    extensions`_ to the template language as needed).
-
-.. _`The Django template language: For Python programmers`: ../templates_python/
-.. _Smarty: http://smarty.php.net/
-.. _CheetahTemplate: http://www.cheetahtemplate.org/
-.. _your own extensions: ../templates_python/#extending-the-template-system
-
-Templates
-=========
-
-A template is simply a text file. It can generate any text-based format (HTML,
-XML, CSV, etc.).
-
-A template contains **variables**, which get replaced with values when the
-template is evaluated, and **tags**, which control the logic of the template.
-
-Below is a minimal template that illustrates a few basics. Each element will be
-explained later in this document.::
-
-    {% extends "base_generic.html" %}
-
-    {% block title %}{{ section.title }}{% endblock %}
-
-    {% block content %}
-    <h1>{{ section.title }}</h1>
-
-    {% for story in story_list %}
-    <h2>
-      <a href="{{ story.get_absolute_url }}">
-        {{ story.headline|upper }}
-      </a>
-    </h2>
-    <p>{{ story.tease|truncatewords:"100" }}</p>
-    {% endfor %}
-    {% endblock %}
-
-.. admonition:: Philosophy
-
-    Why use a text-based template instead of an XML-based one (like Zope's
-    TAL)? We wanted Django's template language to be usable for more than
-    just XML/HTML templates. At World Online, we use it for e-mails,
-    JavaScript and CSV. You can use the template language for any text-based
-    format.
-
-    Oh, and one more thing: Making humans edit XML is sadistic!
-
-Variables
-=========
-
-Variables look like this: ``{{ variable }}``. When the template engine
-encounters a variable, it evaluates that variable and replaces it with the
-result.
-
-Use a dot (``.``) to access attributes of a variable.
-
-.. admonition:: Behind the scenes
-
-    Technically, when the template system encounters a dot, it tries the
-    following lookups, in this order:
-
-        * Dictionary lookup
-        * Attribute lookup
-        * Method call
-        * List-index lookup
-
-In the above example, ``{{ section.title }}`` will be replaced with the
-``title`` attribute of the ``section`` object.
-
-If you use a variable that doesn't exist, the template system will insert
-the value of the ``TEMPLATE_STRING_IF_INVALID`` setting, which is set to ``''``
-(the empty string) by default.
-
-See `Using the built-in reference`_, below, for help on finding what variables
-are available in a given template.
-
-Filters
-=======
-
-You can modify variables for display by using **filters**.
-
-Filters look like this: ``{{ name|lower }}``. This displays the value of the
-``{{ name }}`` variable after being filtered through the ``lower`` filter,
-which converts text to lowercase. Use a pipe (``|``) to apply a filter.
-
-Filters can be "chained." The output of one filter is applied to the next.
-``{{ text|escape|linebreaks }}`` is a common idiom for escaping text contents,
-then converting line breaks to ``<p>`` tags.
-
-Some filters take arguments. A filter argument looks like this: ``{{
-bio|truncatewords:30 }}``. This will display the first 30 words of the ``bio``
-variable.
-
-Filter arguments that contain spaces must be quoted; for example, to join a list
-with commas and spaced you'd use ``{{ list|join:", " }}``.
-
-The `Built-in filter reference`_ below describes all the built-in filters.
-
-Tags
-====
-
-Tags look like this: ``{% tag %}``. Tags are more complex than variables: Some
-create text in the output, some control flow by performing loops or logic, and
-some load external information into the template to be used by later variables.
-
-Some tags require beginning and ending tags (i.e.
-``{% tag %} ... tag contents ... {% endtag %}``). The `Built-in tag reference`_
-below describes all the built-in tags. You can create your own tags, if you
-know how to write Python code.
-
-Comments
-========
-
-To comment-out part of a line in a template, use the comment syntax: ``{# #}``.
-
-For example, this template would render as ``'hello'``::
-
-    {# greeting #}hello
-
-A comment can contain any template code, invalid or not. For example::
-
-    {# {% if foo %}bar{% else %} #}
-
-This syntax can only be used for single-line comments (no newlines are
-permitted between the ``{#`` and ``#}`` delimiters). If you need to comment
-out a multiline portion of the template, see the ``comment`` tag, below__.
-
-__ comment_
-
-Template inheritance
-====================
-
-The most powerful -- and thus the most complex -- part of Django's template
-engine is template inheritance. Template inheritance allows you to build a base
-"skeleton" template that contains all the common elements of your site and
-defines **blocks** that child templates can override.
-
-It's easiest to understand template inheritance by starting with an example::
-
-    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-    <head>
-        <link rel="stylesheet" href="style.css" />
-        <title>{% block title %}My amazing site{% endblock %}</title>
-    </head>
-
-    <body>
-        <div id="sidebar">
-            {% block sidebar %}
-            <ul>
-                <li><a href="/">Home</a></li>
-                <li><a href="/blog/">Blog</a></li>
-            </ul>
-            {% endblock %}
-        </div>
-
-        <div id="content">
-            {% block content %}{% endblock %}
-        </div>
-    </body>
-    </html>
-
-This template, which we'll call ``base.html``, defines a simple HTML skeleton
-document that you might use for a simple two-column page. It's the job of
-"child" templates to fill the empty blocks with content.
-
-In this example, the ``{% block %}`` tag defines three blocks that child
-templates can fill in. All the ``block`` tag does is to tell the template
-engine that a child template may override those portions of the template.
-
-A child template might look like this::
-
-    {% extends "base.html" %}
-
-    {% block title %}My amazing blog{% endblock %}
-
-    {% block content %}
-    {% for entry in blog_entries %}
-        <h2>{{ entry.title }}</h2>
-        <p>{{ entry.body }}</p>
-    {% endfor %}
-    {% endblock %}
-
-The ``{% extends %}`` tag is the key here. It tells the template engine that
-this template "extends" another template. When the template system evaluates
-this template, first it locates the parent -- in this case, "base.html".
-
-At that point, the template engine will notice the three ``{% block %}`` tags
-in ``base.html`` and replace those blocks with the contents of the child
-template. Depending on the value of ``blog_entries``, the output might look
-like::
-
-    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-    <head>
-        <link rel="stylesheet" href="style.css" />
-        <title>My amazing blog</title>
-    </head>
-
-    <body>
-        <div id="sidebar">
-            <ul>
-                <li><a href="/">Home</a></li>
-                <li><a href="/blog/">Blog</a></li>
-            </ul>
-        </div>
-
-        <div id="content">
-            <h2>Entry one</h2>
-            <p>This is my first entry.</p>
-
-            <h2>Entry two</h2>
-            <p>This is my second entry.</p>
-        </div>
-    </body>
-    </html>
-
-Note that since the child template didn't define the ``sidebar`` block, the
-value from the parent template is used instead. Content within a ``{% block %}``
-tag in a parent template is always used as a fallback.
-
-You can use as many levels of inheritance as needed. One common way of using
-inheritance is the following three-level approach:
-
-    * Create a ``base.html`` template that holds the main look-and-feel of your
-      site.
-    * Create a ``base_SECTIONNAME.html`` template for each "section" of your
-      site. For example, ``base_news.html``, ``base_sports.html``. These
-      templates all extend ``base.html`` and include section-specific
-      styles/design.
-    * Create individual templates for each type of page, such as a news
-      article or blog entry. These templates extend the appropriate section
-      template.
-
-This approach maximizes code reuse and makes it easy to add items to shared
-content areas, such as section-wide navigation.
-
-Here are some tips for working with inheritance:
-
-    * If you use ``{% extends %}`` in a template, it must be the first template
-      tag in that template. Template inheritance won't work, otherwise.
-
-    * More ``{% block %}`` tags in your base templates are better. Remember,
-      child templates don't have to define all parent blocks, so you can fill
-      in reasonable defaults in a number of blocks, then only define the ones
-      you need later. It's better to have more hooks than fewer hooks.
-
-    * If you find yourself duplicating content in a number of templates, it
-      probably means you should move that content to a ``{% block %}`` in a
-      parent template.
-
-    * If you need to get the content of the block from the parent template,
-      the ``{{ block.super }}`` variable will do the trick. This is useful
-      if you want to add to the contents of a parent block instead of
-      completely overriding it. Data inserted using ``{{ block.super }}`` will
-      not be automatically escaped (see the `next section`_), since it was
-      already escaped, if necessary, in the parent template.
-
-    * For extra readability, you can optionally give a *name* to your
-      ``{% endblock %}`` tag. For example::
-
-          {% block content %}
-          ...
-          {% endblock content %}
-
-      In larger templates, this technique helps you see which ``{% block %}``
-      tags are being closed.
-
-Finally, note that you can't define multiple ``{% block %}`` tags with the same
-name in the same template. This limitation exists because a block tag works in
-"both" directions. That is, a block tag doesn't just provide a hole to fill --
-it also defines the content that fills the hole in the *parent*. If there were
-two similarly-named ``{% block %}`` tags in a template, that template's parent
-wouldn't know which one of the blocks' content to use.
-
-.. _next section: #automatic-html-escaping
-
-Automatic HTML escaping
-=======================
-
-**New in Django development version**
-
-When generating HTML from templates, there's always a risk that a variable will
-include characters that affect the resulting HTML. For example, consider this
-template fragment::
-
-    Hello, {{ name }}.
-
-At first, this seems like a harmless way to display a user's name, but consider
-what would happen if the user entered his name as this::
-
-    <script>alert('hello')</script>
-
-With this name value, the template would be rendered as::
-
-    Hello, <script>alert('hello')</script>
-
-...which means the browser would pop-up a JavaScript alert box!
-
-Similarly, what if the name contained a ``'<'`` symbol, like this?
-
-    <b>username
-
-That would result in a rendered template like this::
-
-    Hello, <b>username
-
-...which, in turn, would result in the remainder of the Web page being bolded!
-
-Clearly, user-submitted data shouldn't be trusted blindly and inserted directly
-into your Web pages, because a malicious user could use this kind of hole to
-do potentially bad things. This type of security exploit is called a
-`Cross Site Scripting`_ (XSS) attack.
-
-To avoid this problem, you have two options:
-
-    * One, you can make sure to run each untrusted variable through the
-      ``escape`` filter (documented below), which converts potentially harmful
-      HTML characters to unharmful ones. This was the default solution
-      in Django for its first few years, but the problem is that it puts the
-      onus on *you*, the developer / template author, to ensure you're escaping
-      everything. It's easy to forget to escape data.
-
-    * Two, you can take advantage of Django's automatic HTML escaping. The
-      remainder of this section describes how auto-escaping works.
-
-By default in the Django development version, every template automatically
-escapes the output of every variable tag. Specifically, these five characters
-are escaped:
-
-    * ``<`` is converted to ``&lt;``
-    * ``>`` is converted to ``&gt;``
-    * ``'`` (single quote) is converted to ``&#39;``
-    * ``"`` (double quote) is converted to ``&quot;``
-    * ``&`` is converted to ``&amp;``
-
-Again, we stress that this behavior is on by default. If you're using Django's
-template system, you're protected.
-
-.. _Cross Site Scripting: http://en.wikipedia.org/wiki/Cross-site_scripting
-
-How to turn it off
-------------------
-
-If you don't want data to be auto-escaped, on a per-site, per-template level or
-per-variable level, you can turn it off in several ways.
-
-Why would you want to turn it off? Because sometimes, template variables
-contain data that you *intend* to be rendered as raw HTML, in which case you
-don't want their contents to be escaped. For example, you might store a blob of
-HTML in your database and want to embed that directly into your template. Or,
-you might be using Django's template system to produce text that is *not* HTML
--- like an e-mail message, for instance.
-
-For individual variables
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-To disable auto-escaping for an individual variable, use the ``safe`` filter::
-
-    This will be escaped: {{ data }}
-    This will not be escaped: {{ data|safe }}
-
-Think of *safe* as shorthand for *safe from further escaping* or *can be
-safely interpreted as HTML*. In this example, if ``data`` contains ``'<b>'``,
-the output will be::
-
-    This will be escaped: &lt;b&gt;
-    This will not be escaped: <b>
-
-For template blocks
-~~~~~~~~~~~~~~~~~~~
-
-To control auto-escaping for a template, wrap the template (or just a
-particular section of the template) in the ``autoescape`` tag, like so::
-
-    {% autoescape off %}
-        Hello {{ name }}
-    {% endautoescape %}
-
-The ``autoescape`` tag takes either ``on`` or ``off`` as its argument. At
-times, you might want to force auto-escaping when it would otherwise be
-disabled. Here is an example template::
-
-    Auto-escaping is on by default. Hello {{ name }}
-
-    {% autoescape off %}
-        This will not be auto-escaped: {{ data }}.
-
-        Nor this: {{ other_data }}
-        {% autoescape on %}
-            Auto-escaping applies again: {{ name }}
-        {% endautoescape %}
-    {% endautoescape %}
-
-The auto-escaping tag passes its effect onto templates that extend the
-current one as well as templates included via the ``include`` tag, just like
-all block tags. For example::
-
-    # base.html
-
-    {% autoescape off %}
-    <h1>{% block title %}{% endblock %}</h1>
-    {% block content %}
-    {% endblock %}
-    {% endautoescape %}
-
-
-    # child.html
-
-    {% extends "base.html" %}
-    {% block title %}This & that{% endblock %}
-    {% block content %}{{ greeting }}{% endblock %}
-
-Because auto-escaping is turned off in the base template, it will also be
-turned off in the child template, resulting in the following rendered
-HTML when the ``greeting`` variable contains the string ``<b>Hello!</b>``::
-
-    <h1>This & that</h1>
-    <b>Hello!</b>
-
-Notes
------
-
-Generally, template authors don't need to worry about auto-escaping very much.
-Developers on the Python side (people writing views and custom filters) need to
-think about the cases in which data shouldn't be escaped, and mark data
-appropriately, so things Just Work in the template.
-
-If you're creating a template that might be used in situations where you're
-not sure whether auto-escaping is enabled, then add an ``escape`` filter to any
-variable that needs escaping. When auto-escaping is on, there's no danger of
-the ``escape`` filter *double-escaping* data -- the ``escape`` filter does not
-affect auto-escaped variables.
-
-String literals and automatic escaping
---------------------------------------
-
-As we mentioned earlier, filter arguments can be strings::
-
-    {{ data|default:"This is a string literal." }}
-
-All string literals are inserted **without** any automatic escaping into the
-template -- they act as if they were all passed through the ``safe`` filter.
-The reasoning behind this is that the template author is in control of what
-goes into the string literal, so they can make sure the text is correctly
-escaped when the template is written.
-
-This means you would write ::
-
-    {{ data|default:"3 &lt; 2" }}
-
-...rather than ::
-
-    {{ data|default:"3 < 2" }}  <-- Bad! Don't do this.
-
-This doesn't affect what happens to data coming from the variable itself.
-The variable's contents are still automatically escaped, if necessary, because
-they're beyond the control of the template author.
-
-Using the built-in reference
-============================
-
-Django's admin interface includes a complete reference of all template tags and
-filters available for a given site. To see it, go to your admin interface and
-click the "Documentation" link in the upper right of the page.
-
-The reference is divided into 4 sections: tags, filters, models, and views.
-
-The **tags** and **filters** sections describe all the built-in tags (in fact,
-the tag and filter references below come directly from those pages) as well as
-any custom tag or filter libraries available.
-
-The **views** page is the most valuable. Each URL in your site has a separate
-entry here, and clicking on a URL will show you:
-
-    * The name of the view function that generates that view.
-    * A short description of what the view does.
-    * The **context**, or a list of variables available in the view's template.
-    * The name of the template or templates that are used for that view.
-
-Each view documentation page also has a bookmarklet that you can use to jump
-from any page to the documentation page for that view.
-
-Because Django-powered sites usually use database objects, the **models**
-section of the documentation page describes each type of object in the system
-along with all the fields available on that object.
-
-Taken together, the documentation pages should tell you every tag, filter,
-variable and object available to you in a given template.
-
-Custom tag and filter libraries
-===============================
-
-Certain applications provide custom tag and filter libraries. To access them in
-a template, use the ``{% load %}`` tag::
-
-    {% load comments %}
-
-    {% comment_form for blogs.entries entry.id with is_public yes %}
-
-In the above, the ``load`` tag loads the ``comments`` tag library, which then
-makes the ``comment_form`` tag available for use. Consult the documentation
-area in your admin to find the list of custom libraries in your installation.
-
-The ``{% load %}`` tag can take multiple library names, separated by spaces.
-Example::
-
-    {% load comments i18n %}
-
-Custom libraries and template inheritance
------------------------------------------
-
-When you load a custom tag or filter library, the tags/filters are only made
-available to the current template -- not any parent or child templates along
-the template-inheritance path.
-
-For example, if a template ``foo.html`` has ``{% load comments %}``, a child
-template (e.g., one that has ``{% extends "foo.html" %}``) will *not* have
-access to the comments template tags and filters. The child template is
-responsible for its own ``{% load comments %}``.
-
-This is a feature for the sake of maintainability and sanity.
-
-Built-in tag and filter reference
-=================================
-
-For those without an admin site available, reference for the stock tags and
-filters follows. Because Django is highly customizable, the reference in your
-admin should be considered the final word on what tags and filters are
-available, and what they do.
+.. _ref-templates-builtins-tags:
 
 Built-in tag reference
 ----------------------
 
+.. templatetag:: autoescape
+
 autoescape
 ~~~~~~~~~~
 
@@ -580,17 +34,23 @@ The only exceptions are variables that are already marked as "safe" from
 escaping, either by the code that populated the variable, or because it has had
 the ``safe`` or ``escape`` filters applied.
 
+.. templatetag:: block
+
 block
 ~~~~~
 
 Define a block that can be overridden by child templates. See
-`Template inheritance`_ for more information.
+:ref:`Template inheritance <template-inheritance>` for more information.
+
+.. templatetag:: comment
 
 comment
 ~~~~~~~
 
 Ignore everything between ``{% comment %}`` and ``{% endcomment %}``
 
+.. templatetag:: cycle
+
 cycle
 ~~~~~
 
@@ -625,12 +85,16 @@ In this syntax, each value will be interpreted as literal text. The
 comma-based syntax exists for backwards-compatibility, and should not be
 used for new projects.
 
+.. templatetag:: debug
+
 debug
 ~~~~~
 
 Output a whole load of debugging information, including the current context and
 imported modules.
 
+.. templatetag:: extends
+
 extends
 ~~~~~~~
 
@@ -646,7 +110,9 @@ This tag can be used in two ways:
      parent template. If the variable evaluates to a ``Template`` object,
      Django will use that object as the parent template.
 
-See `Template inheritance`_ for more information.
+See :ref:`template-inheritance` for more information.
+
+.. templatetag:: filter
 
 filter
 ~~~~~~
@@ -662,6 +128,8 @@ Sample usage::
         This text will be HTML-escaped, and will appear in all lowercase.
     {% endfilter %}
 
+.. templatetag:: firstof
+
 firstof
 ~~~~~~~
 
@@ -687,6 +155,8 @@ passed variables are False::
 
     {% firstof var1 var2 var3 "fallback value" %}
 
+.. templatetag:: for
+
 for
 ~~~
 
@@ -736,6 +206,8 @@ The for loop sets a number of variables available within the loop:
                                 current one
     ==========================  ================================================
 
+.. templatetag:: if
+
 if
 ~~
 
@@ -799,6 +271,8 @@ same operator. For example, this is valid::
 
     {% if athlete_list or coach_list or parent_list or teacher_list %}
 
+.. templatetag:: ifchanged
+
 ifchanged
 ~~~~~~~~~
 
@@ -819,7 +293,7 @@ The 'ifchanged' block tag is used within a loop. It has two possible uses.
 
 2. If given a variable, check whether that variable has changed. For
    example, the following shows the date every time it changes, but
-   only shows the hour if both the hour and the date have changed::
+   only shows the hour if both the hour and the date has changed::
 
         {% for date in days %}
             {% ifchanged date.date %} {{ date.date }} {% endifchanged %}
@@ -828,18 +302,7 @@ The 'ifchanged' block tag is used within a loop. It has two possible uses.
             {% endifchanged %}
         {% endfor %}
 
-The ``ifchanged`` tag also takes an optional ``{% else %}`` clause that will
-be displayed if the value has not changed::
-
-    {% for match in matches %}
-        <div style="background-color:
-            {% ifchanged match.ballot_id %}
-                {% cycle red,blue %}
-            {% else %}
-                grey
-            {% endifchanged %}
-        ">{{ match }}</div>
-    {% endfor %}
+.. templatetag:: ifequal
 
 ifequal
 ~~~~~~~
@@ -865,11 +328,15 @@ You cannot check for equality with Python objects such as ``True`` or
 ``False``.  If you need to test if something is true or false, use the ``if``
 tag instead.
 
+.. templatetag:: ifnotequal
+
 ifnotequal
 ~~~~~~~~~~
 
 Just like ``ifequal``, except it tests that the two arguments are not equal.
 
+.. templatetag:: include
+
 include
 ~~~~~~~
 
@@ -902,12 +369,16 @@ including it. This example produces the output ``"Hello, John"``:
 
 See also: ``{% ssi %}``.
 
+.. templatetag:: load
+
 load
 ~~~~
 
 Load a custom template tag set.
 
-See `Custom tag and filter libraries`_ for more information.
+See :ref:`Custom tag and filter libraries <howto-custom-template-tags>` for more information.
+
+.. templatetag:: now
 
 now
 ~~~
@@ -992,12 +463,14 @@ escaped, because it's not a format character::
 
 This would display as "It is the 4th of September".
 
+.. templatetag:: regroup
+
 regroup
 ~~~~~~~
 
 Regroup a list of alike objects by a common attribute.
 
-This complex tag is best illustrated by use of an example:  say that ``people``
+This complex tag is best illustrated by use of an example: say that ``people``
 is a list of people represented by dictionaries with ``first_name``,
 ``last_name``, and ``gender`` keys::
 
@@ -1088,6 +561,8 @@ filter, if your data is in a list of dictionaries::
 
     {% regroup people|dictsort:"gender" by gender as gender_list %}
 
+.. templatetag:: spaceless
+
 spaceless
 ~~~~~~~~~
 
@@ -1115,6 +590,8 @@ this example, the space around ``Hello`` won't be stripped::
         </strong>
     {% endspaceless %}
 
+.. templatetag:: ssi
+
 ssi
 ~~~
 
@@ -1132,11 +609,11 @@ file are evaluated as template code, within the current context::
     {% ssi /home/html/ljworld.com/includes/right_generic.html parsed %}
 
 Note that if you use ``{% ssi %}``, you'll need to define
-`ALLOWED_INCLUDE_ROOTS`_ in your Django settings, as a security measure.
+:setting:`ALLOWED_INCLUDE_ROOTS` in your Django settings, as a security measure.
 
 See also: ``{% include %}``.
 
-.. _ALLOWED_INCLUDE_ROOTS: ../settings/#allowed-include-roots
+.. templatetag:: templatetag
 
 templatetag
 ~~~~~~~~~~~
@@ -1161,6 +638,8 @@ The argument tells which template bit to output:
     ``closecomment``    ``#}``
     ==================  =======
 
+.. templatetag:: url
+
 url
 ~~~
 
@@ -1181,7 +660,7 @@ For example, suppose you have a view, ``app_views.client``, whose URLconf
 takes a client ID (here, ``client()`` is a method inside the views file
 ``app_views.py``). The URLconf line might look like this::
 
-    ('^client/(\d+)/$', 'project_name.app_name.app_views.client')
+    ('^client/(\d+)/$', 'app_views.client')
 
 If this app's URLconf is included into the project's URLconf under a path
 such as this::
@@ -1190,15 +669,15 @@ such as this::
 
 ...then, in a template, you can create a link to this view like this::
 
-    {% url project_name.app_name.app_views.client client.id %}
+    {% url app_views.client client.id %}
 
 The template tag will output the string ``/clients/client/123/``.
 
-**New in development version:** If you're using `named URL patterns`_,
-you can refer to the name of the pattern in the ``url`` tag instead of
-using the path to the view.
+**New in development version:** If you're using :ref:`named URL patterns
+<naming-url-patterns>`, you can refer to the name of the pattern in the ``url``
+tag instead of using the path to the view.
 
-.. _named URL patterns: ../url_dispatch/#naming-url-patterns
+.. templatetag:: widthratio
 
 widthratio
 ~~~~~~~~~~
@@ -1210,10 +689,12 @@ For example::
 
     <img src="bar.gif" height="10" width="{% widthratio this_value max_value 100 %}" />
 
-Above, if ``this_value`` is 175 and ``max_value`` is 200, the the image in the
+Above, if ``this_value`` is 175 and ``max_value`` is 200, the image in the
 above example will be 88 pixels wide (because 175/200 = .875; .875 * 100 = 87.5
 which is rounded up to 88).
 
+.. templatetag:: with
+
 with
 ~~~~
 
@@ -1231,9 +712,13 @@ For example::
 The populated variable (in the example above, ``total``) is only available
 between the ``{% with %}`` and ``{% endwith %}`` tags.
 
+.. _ref-templates-builtins-filters:
+
 Built-in filter reference
 -------------------------
 
+.. templatefilter:: add
+
 add
 ~~~
 
@@ -1245,6 +730,8 @@ For example::
 
 If ``value`` is ``4``, then the output will be ``6``.
 
+.. templatefilter:: addslashes
+
 addslashes
 ~~~~~~~~~~
 
@@ -1253,16 +740,22 @@ Adds slashes before quotes. Useful for escaping strings in CSV, for example.
 **New in Django development version**: For escaping data in JavaScript strings,
 use the `escapejs`_ filter instead.
 
+.. templatefilter:: capfirst
+
 capfirst
 ~~~~~~~~
 
 Capitalizes the first character of the value.
 
+.. templatefilter:: center
+
 center
 ~~~~~~
 
 Centers the value in a field of a given width.
 
+.. templatefilter:: cut
+
 cut
 ~~~
 
@@ -1274,6 +767,8 @@ For example::
 
 If ``value`` is ``"String with spaces"``, the output will be ``"Stringwithspaces"``.
 
+.. templatefilter:: date
+
 date
 ~~~~
 
@@ -1287,6 +782,8 @@ If ``value`` is a ``datetime`` object (e.g., the result of
 ``datetime.datetime.now()``), the output will be the string
 ``'Wed 09 Jan 2008'``.
 
+.. templatefilter:: default
+
 default
 ~~~~~~~
 
@@ -1298,6 +795,8 @@ For example::
 
 If ``value`` is ``""`` (the empty string), the output will be ``nothing``.
 
+.. templatefilter:: default_if_none
+
 default_if_none
 ~~~~~~~~~~~~~~~
 
@@ -1313,6 +812,8 @@ For example::
 
 If ``value`` is ``None``, the output will be the string ``"nothing"``.
 
+.. templatefilter:: dictsort
+
 dictsort
 ~~~~~~~~
 
@@ -1339,6 +840,8 @@ then the output would be::
         {'name': 'zed', 'age': 19},
     ]
 
+.. templatefilter:: dictsortreversed
+
 dictsortreversed
 ~~~~~~~~~~~~~~~~
 
@@ -1346,6 +849,8 @@ Takes a list of dictionaries and returns that list sorted in reverse order by
 the key given in the argument. This works exactly the same as the above filter,
 but the returned value will be in reverse order.
 
+.. templatefilter:: divisibleby
+
 divisibleby
 ~~~~~~~~~~~
 
@@ -1357,6 +862,8 @@ For example::
 
 If ``value`` is ``21``, the output would be ``True``.
 
+.. templatefilter:: escape
+
 escape
 ~~~~~~
 
@@ -1382,6 +889,8 @@ multiple escaping passes to be applied, use the ``force_escape`` filter.
 this filter has changed slightly. The replacements are only made once, after
 all other filters are applied -- including filters before and after it.
 
+.. templatefilter:: escapejs
+
 escapejs
 ~~~~~~~~
 
@@ -1391,6 +900,8 @@ Escapes characters for use in JavaScript strings. This does *not* make the
 string safe for use in HTML, but does protect you from syntax errors when using
 templates to generate JavaScript/JSON.
 
+.. templatefilter:: filesizeformat
+
 filesizeformat
 ~~~~~~~~~~~~~~
 
@@ -1403,6 +914,8 @@ For example::
 
 If ``value`` is 123456789, the output would be ``117.7 MB``.
 
+.. templatefilter:: first
+
 first
 ~~~~~
 
@@ -1414,6 +927,8 @@ For example::
 
 If ``value`` is the list ``['a', 'b', 'c']``, the output will be ``'a'``.
 
+.. templatefilter:: fix_ampersands
+
 fix_ampersands
 ~~~~~~~~~~~~~~
 
@@ -1429,6 +944,8 @@ If ``value`` is ``Tom & Jerry``, the output will be ``Tom &amp; Jerry``.
 useful, because ampersands are automatically escaped in templates. See escape_
 for more on how auto-escaping works.
 
+.. templatefilter:: floatformat
+
 floatformat
 ~~~~~~~~~~~
 
@@ -1469,6 +986,8 @@ displayed. For example:
 Using ``floatformat`` with no argument is equivalent to using ``floatformat``
 with an argument of ``-1``.
 
+.. templatefilter:: force_escape
+
 force_escape
 ~~~~~~~~~~~~
 
@@ -1480,6 +999,8 @@ is useful in the rare cases where you need multiple escaping or want to apply
 other filters to the escaped results. Normally, you want to use the ``escape``
 filter.
 
+.. templatefilter:: get_digit
+
 get_digit
 ~~~~~~~~~
 
@@ -1494,6 +1015,8 @@ For example::
 
 If ``value`` is ``123456789``, the output will be ``8``.
 
+.. templatefilter:: iriendcode
+
 iriencode
 ~~~~~~~~~
 
@@ -1504,6 +1027,8 @@ strings containing non-ASCII characters in a URL.
 It's safe to use this filter on a string that has already gone through the
 ``urlencode`` filter.
 
+.. templatefilter:: join
+
 join
 ~~~~
 
@@ -1516,6 +1041,8 @@ For example::
 If ``value`` is the list ``['a', 'b', 'c']``, the output will be the string
 ``"a // b // c"``.
 
+.. templatefilter:: last
+
 last
 ~~~~
 
@@ -1530,6 +1057,8 @@ For example::
 If ``value`` is the list ``['a', 'b', 'c', 'd']``, the output will be the string
 ``"d"``.
 
+.. templatefilter:: length
+
 length
 ~~~~~~
 
@@ -1541,6 +1070,8 @@ For example::
 
 If ``value`` is ``['a', 'b', 'c', 'd']``, the output will be ``4``.
 
+.. templatefilter:: length_is
+
 length_is
 ~~~~~~~~~
 
@@ -1552,6 +1083,8 @@ For example::
 
 If ``value`` is ``['a', 'b', 'c', 'd']``, the output will be ``True``.
 
+.. templatefilter:: linebreaks
+
 linebreaks
 ~~~~~~~~~~
 
@@ -1566,17 +1099,23 @@ For example::
 If ``value`` is ``Joel\nis a slug``, the output will be ``<p>Joel<br>is a
 slug</p>``.
 
+.. templatefilter:: linebreaksbr
+
 linebreaksbr
 ~~~~~~~~~~~~
 
 Converts all newlines in a piece of plain text to HTML line breaks
 (``<br />``).
 
+.. templatefilter:: linenumbers
+
 linenumbers
 ~~~~~~~~~~~
 
 Displays text with line numbers.
 
+.. templatefilter:: ljust
+
 ljust
 ~~~~~
 
@@ -1584,6 +1123,8 @@ Left-aligns the value in a field of a given width.
 
 **Argument:** field size
 
+.. templatefilter:: lower
+
 lower
 ~~~~~
 
@@ -1595,6 +1136,8 @@ For example::
 
 If ``value`` is ``Still MAD At Yoko``, the output will be ``still mad at yoko``.
 
+.. templatefilter:: make_list
+
 make_list
 ~~~~~~~~~
 
@@ -1609,6 +1152,8 @@ If ``value`` is the string ``"Joel"``, the output would be the list
 ``[u'J', u'o', u'e', u'l']``. If ``value`` is ``123``, the output will be the
 list ``[1, 2, 3]``.
 
+.. templatefilter:: phone2numeric
+
 phone2numeric
 ~~~~~~~~~~~~~
 
@@ -1619,6 +1164,8 @@ equivalent. For example, ``'800-COLLECT'`` will be converted to
 The input doesn't have to be a valid phone number. This will happily convert
 any string.
 
+.. templatefilter:: pluralize
+
 pluralize
 ~~~~~~~~~
 
@@ -1641,6 +1188,8 @@ singular and plural suffix, separated by a comma.
 Example::
 
     You have {{ num_cherries }} cherr{{ num_cherries|pluralize:"y,ies" }}.
+    
+.. templatefilter:: pprint
 
 pprint
 ~~~~~~
@@ -1649,6 +1198,8 @@ A wrapper around `pprint.pprint`__ -- for debugging, really.
 
 __ http://www.python.org/doc/2.5/lib/module-pprint.html
 
+.. templatefilter:: random
+
 random
 ~~~~~~
 
@@ -1660,6 +1211,8 @@ For example::
 
 If ``value`` is the list ``['a', 'b', 'c', 'd']``, the output could be ``"b"``.
 
+.. templatefilter:: removetags
+
 removetags
 ~~~~~~~~~~
 
@@ -1672,6 +1225,8 @@ For example::
 If ``value`` is ``"<b>Joel</b> <button>is</button> a <span>slug</span>"`` the
 output will be ``"Joel <button>is</button> a slug"``.
 
+.. templatefilter:: rjust
+
 rjust
 ~~~~~
 
@@ -1679,12 +1234,16 @@ Right-aligns the value in a field of a given width.
 
 **Argument:** field size
 
+.. templatefilter:: safe
+
 safe
 ~~~~
 
 Marks a string as not requiring further HTML escaping prior to output. When
 autoescaping is off, this filter has no effect.
 
+.. templatefilter:: slice
+
 slice
 ~~~~~
 
@@ -1696,6 +1255,8 @@ for an introduction.
 
 Example: ``{{ some_list|slice:":2" }}``
 
+.. templatefilter:: slugify
+
 slugify
 ~~~~~~~
 
@@ -1709,11 +1270,13 @@ For example::
 
 If ``value`` is ``"Joel is a slug"``, the output will be ``"joel-is-a-slug"``.
 
+.. templatefilter:: stringformat
+
 stringformat
 ~~~~~~~~~~~~
 
 Formats the variable according to the argument, a string formatting specifier.
-This specifier uses Python string formating syntax, with the exception that
+This specifier uses Python string formatting syntax, with the exception that
 the leading "%" is dropped.
 
 See http://docs.python.org/lib/typesseq-strings.html for documentation of
@@ -1725,6 +1288,8 @@ For example::
 
 If ``value`` is ``"Joel is a slug"``, the output will be ``"Joel is a slug"``.
 
+.. templatefilter:: striptags
+
 striptags
 ~~~~~~~~~
 
@@ -1737,6 +1302,8 @@ For example::
 If ``value`` is ``"<b>Joel</b> <button>is</button> a <span>slug</span>"``, the
 output will be ``"Joel is a slug"``.
 
+.. templatefilter:: time
+
 time
 ~~~~
 
@@ -1752,6 +1319,8 @@ For example::
 If ``value`` is equivalent to ``datetime.datetime.now()``, the output will be
 the string ``"01:23"``.
 
+.. templatefilter:: timesince
+
 timesince
 ~~~~~~~~~
 
@@ -1766,6 +1335,8 @@ then ``{{ comment_date|timesince:blog_date }}`` would return "8 hours".
 Minutes is the smallest unit used, and "0 minutes" will be returned for any
 date that is in the future relative to the comparison point.
 
+.. templatefilter:: timeuntil
+
 timeuntil
 ~~~~~~~~~
 
@@ -1781,11 +1352,15 @@ the comparison point (instead of *now*). If ``from_date`` contains 22 June
 Minutes is the smallest unit used, and "0 minutes" will be returned for any
 date that is in the past relative to the comparison point.
 
+.. templatefilter:: title
+
 title
 ~~~~~
 
 Converts a string into titlecase.
 
+.. templatefilter:: truncatewords
+
 truncatewords
 ~~~~~~~~~~~~~
 
@@ -1799,6 +1374,8 @@ For example::
 
 If ``value`` is ``"Joel is a slug"``, the output will be ``"Joel is ..."``.
 
+.. templatefilter:: truncatewords_html
+
 truncatewords_html
 ~~~~~~~~~~~~~~~~~~
 
@@ -1809,6 +1386,8 @@ closed immediately after the truncation.
 This is less efficient than ``truncatewords``, so should only be used when it
 is being passed HTML text.
 
+.. templatefilter:: unordered_list
+
 unordered_list
 ~~~~~~~~~~~~~~
 
@@ -1837,6 +1416,8 @@ The list is assumed to be in the proper format. For example, if ``var`` contains
 Note: the previous more restrictive and verbose format is still supported:
 ``['States', [['Kansas', [['Lawrence', []], ['Topeka', []]]], ['Illinois', []]]]``,
 
+.. templatefilter:: upper
+
 upper
 ~~~~~
 
@@ -1848,11 +1429,15 @@ For example::
 
 If ``value`` is ``"Joel is a slug"``, the output will be ``"JOEL IS A SLUG"``.
 
+.. templatefilter:: urlencode
+
 urlencode
 ~~~~~~~~~
 
 Escapes a value for use in a URL.
 
+.. templatefilter:: urlize
+
 urlize
 ~~~~~~
 
@@ -1869,6 +1454,8 @@ If ``value`` is ``"Check out www.djangoproject.com"``, the output will be
 ``"Check out <a
 href="http://www.djangoproject.com">www.djangoproject.com</a>"``.
 
+.. templatefilter:: urlizetrunc
+
 urlizetrunc
 ~~~~~~~~~~~
 
@@ -1887,11 +1474,15 @@ If ``value`` is ``"Check out www.djangoproject.com"``, the output would be
 ``'Check out <a
 href="http://www.djangoproject.com">www.djangopr...</a>'``.
 
+.. templatefilter:: wordcount
+
 wordcount
 ~~~~~~~~~
 
 Returns the number of words.
 
+.. templatefilter:: wordwrap
+
 wordwrap
 ~~~~~~~~
 
@@ -1909,6 +1500,8 @@ If ``value`` is ``Joel is a slug``, the output would be::
     is a
     slug
 
+.. templatefilter:: yesno
+
 yesno
 ~~~~~
 
@@ -1936,9 +1529,7 @@ django.contrib.humanize
 -----------------------
 
 A set of Django template filters useful for adding a "human touch" to data. See
-the `humanize documentation`_.
-
-.. _humanize documentation: ../add_ons/#humanize
+:ref:`ref-contrib-humanize`.
 
 django.contrib.markup
 ---------------------
@@ -1949,16 +1540,10 @@ A collection of template filters that implement these common markup languages:
     * Markdown
     * ReST (ReStructured Text)
 
-See the `markup section`_ of the `add-ons documentation`_ for more
-information.
-
-.. _markup section: ../add_ons/#markup
-.. _add-ons documentation: ../add_ons/
+See :ref:`ref-contrib-markup`.
 
 django.contrib.webdesign
 ------------------------
 
-A collection of template tags that can be useful while designing a Web site,
-such as a generator of Lorem Ipsum text. See the `webdesign documentation`_.
-
-.. _webdesign documentation: ../webdesign/
+A collection of template tags that can be useful while designing a website,
+such as a generator of Lorem Ipsum text. See :ref:`ref-contrib-webdesign`.
diff --git a/docs/ref/templates/index.txt b/docs/ref/templates/index.txt
new file mode 100644
index 0000000000..d7bf99aa8c
--- /dev/null
+++ b/docs/ref/templates/index.txt
@@ -0,0 +1,20 @@
+.. _ref-templates-index:
+
+Template reference
+==================
+
+Django's template engine provides a powerful mini-language for defining the
+user-facing layer of your application, encouraging a clean separation of
+application and presentation logic. Templates can be maintained by anyone with
+an understanding of HTML; no knowledge of Python is required.
+
+.. toctree::
+   :maxdepth: 2
+
+   builtins
+   api
+
+.. seealso::
+
+    For information on writing your own custom tags and filters, see
+    :ref:`howto-custom-template-tags`.
\ No newline at end of file
diff --git a/docs/unicode.txt b/docs/ref/unicode.txt
similarity index 92%
rename from docs/unicode.txt
rename to docs/ref/unicode.txt
index a2c4e7fbe6..985ab15096 100644
--- a/docs/unicode.txt
+++ b/docs/ref/unicode.txt
@@ -1,3 +1,5 @@
+.. _ref-unicode:
+
 ======================
 Unicode data in Django
 ======================
@@ -60,12 +62,12 @@ You can use Unicode strings, or you can use normal strings (sometimes called
 If your code only uses ASCII data, it's safe to use your normal strings,
 passing them around at will, because ASCII is a subset of UTF-8.
 
-Don't be fooled into thinking that if your ``DEFAULT_CHARSET`` setting is set
+Don't be fooled into thinking that if your :setting:`DEFAULT_CHARSET` setting is set
 to something other than ``'utf-8'`` you can use that other encoding in your
-bytestrings! ``DEFAULT_CHARSET`` only applies to the strings generated as
+bytestrings! :setting:`DEFAULT_CHARSET` only applies to the strings generated as
 the result of template rendering (and e-mail). Django will always assume UTF-8
 encoding for internal bytestrings. The reason for this is that the
-``DEFAULT_CHARSET`` setting is not actually under your control (if you are the
+:setting:`DEFAULT_CHARSET` setting is not actually under your control (if you are the
 application developer). It's under the control of the person installing and
 using your application -- and if that person chooses a different setting, your
 code must still continue to work. Ergo, it cannot rely on that setting.
@@ -93,9 +95,7 @@ Calling ``unicode()`` with the lazy translation as the argument will generate a
 Unicode string in the current locale.
 
 For more details about lazy translation objects, refer to the
-internationalization_ documentation.
-
-.. _internationalization: ../i18n/#lazy-translation
+:ref:`internationalization <topics-i18n>` documentation.
 
 Useful utility functions
 ------------------------
@@ -123,15 +123,15 @@ for converting back and forth between Unicode and bytestrings.
       If you pass ``smart_unicode()`` an object that has a ``__unicode__``
       method, it will use that method to do the conversion.
 
-    * ``force_unicode(s, encoding='utf-8', strings_only=False, errors='strict')``
-      is identical to ``smart_unicode()`` in almost all cases. The difference
-      is when the first argument is a `lazy translation`_ instance. While
-      ``smart_unicode()`` preserves lazy translations, ``force_unicode()``
-      forces those objects to a Unicode string (causing the translation to
-      occur). Normally, you'll want to use ``smart_unicode()``. However,
-      ``force_unicode()`` is useful in template tags and filters that
-      absolutely *must* have a string to work with, not just something that can
-      be converted to a string.
+    * ``force_unicode(s, encoding='utf-8', strings_only=False,
+      errors='strict')`` is identical to ``smart_unicode()`` in almost all
+      cases. The difference is when the first argument is a :ref:`lazy
+      translation <lazy-translations>` instance. While ``smart_unicode()``
+      preserves lazy translations, ``force_unicode()`` forces those objects to a
+      Unicode string (causing the translation to occur). Normally, you'll want
+      to use ``smart_unicode()``. However, ``force_unicode()`` is useful in
+      template tags and filters that absolutely *must* have a string to work
+      with, not just something that can be converted to a string.
 
     * ``smart_str(s, encoding='utf-8', strings_only=False, errors='strict')``
       is essentially the opposite of ``smart_unicode()``. It forces the first
@@ -144,12 +144,10 @@ Normally, you'll only need to use ``smart_unicode()``. Call it as early as
 possible on any input data that might be either Unicode or a bytestring, and
 from then on, you can treat the result as always being Unicode.
 
-.. _lazy translation: ../i18n/#lazy-translation
-
 URI and IRI handling
 ~~~~~~~~~~~~~~~~~~~~
 
-Web frameworks have to deal with URLs (which are a type of URI_). One
+Web frameworks have to deal with URLs (which are a type of IRI_). One
 requirement of URLs is that they are encoded using only ASCII characters.
 However, in an international environment, you might need to construct a
 URL from an IRI_ -- very loosely speaking, a URI that can contain Unicode
@@ -288,12 +286,12 @@ You can use either Unicode or bytestrings when creating templates manually::
 
 But the common case is to read templates from the filesystem, and this creates
 a slight complication: not all filesystems store their data encoded as UTF-8.
-If your template files are not stored with a UTF-8 encoding, set the ``FILE_CHARSET``
+If your template files are not stored with a UTF-8 encoding, set the :setting:`FILE_CHARSET`
 setting to the encoding of the files on disk. When Django reads in a template
-file, it will convert the data from this encoding to Unicode. (``FILE_CHARSET``
+file, it will convert the data from this encoding to Unicode. (:setting:`FILE_CHARSET`
 is set to ``'utf-8'`` by default.)
 
-The ``DEFAULT_CHARSET`` setting controls the encoding of rendered templates.
+The :setting:`DEFAULT_CHARSET` setting controls the encoding of rendered templates.
 This is set to UTF-8 by default.
 
 Template tags and filters
@@ -345,7 +343,7 @@ two fields will return their members as Unicode data. All other attributes and
 methods of ``HttpRequest`` return data exactly as it was submitted by the
 client.
 
-By default, the ``DEFAULT_CHARSET`` setting is used as the assumed encoding
+By default, the :setting:`DEFAULT_CHARSET` setting is used as the assumed encoding
 for form data. If you need to change this for a particular form, you can set
 the ``encoding`` attribute on an ``HttpRequest`` instance. For example::
 
diff --git a/docs/release_notes_0.95.txt b/docs/releases/0.95.txt
similarity index 97%
rename from docs/release_notes_0.95.txt
rename to docs/releases/0.95.txt
index a61b10d567..b74160128b 100644
--- a/docs/release_notes_0.95.txt
+++ b/docs/releases/0.95.txt
@@ -1,8 +1,9 @@
+.. _releases-0.95:
+
 =================================
 Django version 0.95 release notes
 =================================
 
-
 Welcome to the Django 0.95 release.
 
 This represents a significant advance in Django development since the 0.91
@@ -98,10 +99,10 @@ easy checklist_ for reference when undertaking the porting operation.
 Problem reports and getting help
 ================================
 
-Need help resolving a problem with Django? The documentation in the
-distribution is also available online_ at the `Django Web site`_. The FAQ_
-document is especially recommended, as it contains a number of issues that
-come up time and again.
+Need help resolving a problem with Django? The documentation in the distribution
+is also available online_ at the `Django Web site`_. The :ref:`FAQ <faq-index>`
+document is especially recommended, as it contains a number of issues that come
+up time and again.
 
 For more personalized help, the `django-users`_ mailing list is a very active
 list, with more than 2,000 subscribers who can help you solve any sort of
@@ -116,7 +117,6 @@ available at any hour of the day -- to help, or just to chat.
 
 .. _online: http://www.djangoproject.com/documentation/0.95/
 .. _Django Web site: http://www.djangoproject.com/
-.. _FAQ: http://www.djangoproject.com/documentation/faq/
 .. _django-users: http://groups.google.com/group/django-users
 
 Thanks for using Django!
diff --git a/docs/release_notes_0.96.txt b/docs/releases/0.96.txt
similarity index 95%
rename from docs/release_notes_0.96.txt
rename to docs/releases/0.96.txt
index 59931541e1..186a0e8da9 100644
--- a/docs/release_notes_0.96.txt
+++ b/docs/releases/0.96.txt
@@ -1,3 +1,5 @@
+.. _releases-0.96:
+
 =================================
 Django version 0.96 release notes
 =================================
@@ -34,7 +36,7 @@ exceptions if you attempt to use an older version.
 If you're currently unable to upgrade your copy of ``MySQLdb`` to meet
 this requirement, a separate, backwards-compatible backend, called
 "mysql_old", has been added to Django. To use this backend, change
-the ``DATABASE_ENGINE`` setting in your Django settings file from
+the :setting:`DATABASE_ENGINE` setting in your Django settings file from
 this::
 
     DATABASE_ENGINE = "mysql"
@@ -49,12 +51,12 @@ provided only to ease this transition, and is considered deprecated;
 aside from any necessary security fixes, it will not be actively
 maintained, and it will be removed in a future release of Django.
 
-Also, note that some features, like the new ``DATABASE_OPTIONS``
+Also, note that some features, like the new :setting:`DATABASE_OPTIONS`
 setting (see the `databases documentation`_ for details), are only
 available on the "mysql" backend, and will not be made available for
 "mysql_old".
 
-.. _databases documentation: ../databases/
+.. _databases documentation: http://www.djangoproject.com/documentation/0.96/databases/
 
 Database constraint names changed
 ---------------------------------
@@ -167,7 +169,7 @@ old forms system and start with the new.
 For more information about ``django.newforms``, read the `newforms
 documentation`_.
 
-.. _newforms documentation: ../newforms/
+.. _newforms documentation: http://www.djangoproject.com/documentation/0.96/newforms/
 
 URLconf improvements
 --------------------
@@ -227,8 +229,8 @@ See `the testing documentation`_ for the full details.
 
 .. _doctest: http://docs.python.org/lib/module-doctest.html
 .. _unittest: http://docs.python.org/lib/module-unittest.html
-.. _the testing documentation: ../testing/
-.. _serialization formats: ../serialization/
+.. _the testing documentation: http://www.djangoproject.com/documentation/0.96/testing/
+.. _serialization formats: http://www.djangoproject.com/documentation/0.96/serialization/
 
 Improvements to the admin interface
 -----------------------------------
diff --git a/docs/release_notes_1.0_alpha.txt b/docs/releases/1.0-alpha-1.txt
similarity index 99%
rename from docs/release_notes_1.0_alpha.txt
rename to docs/releases/1.0-alpha-1.txt
index 6fce66532e..1b13b7c58a 100644
--- a/docs/release_notes_1.0_alpha.txt
+++ b/docs/releases/1.0-alpha-1.txt
@@ -1,3 +1,5 @@
+.. _releases-1.0-alpha-1:
+
 ================================
 Django 1.0 alpha release notes
 ================================
diff --git a/docs/release_notes_1.0_alpha_2.txt b/docs/releases/1.0-alpha-2.txt
similarity index 81%
rename from docs/release_notes_1.0_alpha_2.txt
rename to docs/releases/1.0-alpha-2.txt
index c2f0ca5598..8916678ad5 100644
--- a/docs/release_notes_1.0_alpha_2.txt
+++ b/docs/releases/1.0-alpha-2.txt
@@ -1,8 +1,9 @@
+.. _releases-1.0-alpha-2:
+
 ================================
 Django 1.0 alpha 2 release notes
 ================================
 
-
 Welcome to Django 1.0 alpha 2!
 
 This is the second in a series of preview/development releases leading
@@ -18,11 +19,11 @@ such use is strongly discouraged.
 What's new in Django 1.0 alpha 2
 ================================
 
-Django's development trunk has been the site of nearly constant
-activity over the past year, with several major new features landing
-since the 0.96 release. For features which were new as of Django 1.0
-alpha 1, see `the 1.0 alpha 1 release notes`_. Since the 1.0 alpha 1
-release several new features have landed, including:
+Django's development trunk has been the site of nearly constant activity over
+the past year, with several major new features landing since the 0.96 release.
+For features which were new as of Django 1.0 alpha 1, see :ref:`the 1.0 alpha 1
+release notes <releases-1.0-alpha-1`. Since the 1.0 alpha 1 release several new
+features have landed, including:
 
 ``django.contrib.gis`` (`GeoDjango`_)
     A project over a year in the making, this adds world-class GIS
@@ -34,12 +35,11 @@ release several new features have landed, including:
     for their efforts in creating and completing this feature.
 
 Pluggable file storage
-    Django's built-in ``FileField`` and ``ImageField`` now can take
-    advantage of pluggable file-storage backends, allowing extensive
-    customization of where and how uploaded files get stored by
-    Django. For details, see `the files documentation`_; big thanks go
-    to Marty Alchin for putting in the hard work to get this
-    completed.
+    Django's built-in ``FileField`` and ``ImageField`` now can take advantage of
+    pluggable file-storage backends, allowing extensive customization of where
+    and how uploaded files get stored by Django. For details, see :ref:`the
+    files documentation <topics-files>`; big thanks go to Marty Alchin for
+    putting in the hard work to get this completed.
 
 Jython compatibility
     Thanks to a lot of work from Leo Soto during a Google Summer of
@@ -49,20 +49,17 @@ Jython compatibility
     Machine. Django is now compatible with the forthcoming Jython 2.5
     release.
 
-There are many other new features and improvements in this release,
-including two major performance boosts: strings marked for translation
-using `Django's internationalization system`_ now consume far less
-memory, and Django's internal dispatcher -- which is invoked
-frequently during request/response processing and when working with
-Django's object-relational mapper -- is now significantly faster.
+There are many other new features and improvements in this release, including
+two major performance boosts: strings marked for translation using
+:ref:`Django's internationalization system <topics-i18n>` now consume far less
+memory, and Django's internal dispatcher -- which is invoked frequently during
+request/response processing and when working with Django's object-relational
+mapper -- is now significantly faster.
     
-.. _the 1.0 alpha 1 release notes: ../release_notes_1.0_alpha/
 .. _GeoDjango: http://geodjango.org/
 .. _Geographic Information Systems: http://en.wikipedia.org/wiki/Geographic_information_system
 .. _Its documentation: http://geodjango.org/docs/
-.. _the files documentation: ../files/
 .. _Jython: http://www.jython.org/
-.. _Django's internationalization system: ../i18n/
 
 
 The Django 1.0 roadmap
diff --git a/docs/release_notes_1.0_beta_1.txt b/docs/releases/1.0-beta.txt
similarity index 86%
rename from docs/release_notes_1.0_beta_1.txt
rename to docs/releases/1.0-beta.txt
index 23c2c10663..69f15e7f2d 100644
--- a/docs/release_notes_1.0_beta_1.txt
+++ b/docs/releases/1.0-beta.txt
@@ -1,8 +1,9 @@
+.. _releases-1.0-beta:
+
 ===============================
 Django 1.0 beta 1 release notes
 ===============================
 
-
 Welcome to Django 1.0 beta 1!
 
 This is the third in a series of preview/development releases leading
@@ -14,15 +15,14 @@ helping to identify and resolve bugs prior to the final 1.0 release.
 As such, this release is *not* intended for production use, and any
 such use is discouraged.
 
-
 What's new in Django 1.0 beta 1
 ===============================
 
-Django's development trunk has been the site of nearly constant
-activity over the past year, with several major new features landing
-since the 0.96 release. For features which were new as of Django 1.0
-alpha 1, see `the 1.0 alpha 1 release notes`_. For features which were
-new as of Django 1.0 alpha 2, see `the 1.0 alpha 2 release notes`_.
+Django's development trunk has been the site of nearly constant activity over
+the past year, with several major new features landing since the 0.96 release.
+For features which were new as of Django 1.0 alpha 1, see :ref:`the 1.0 alpha 1
+release notes <releases-1.0-alpha-1>`. For features which were new as of Django
+1.0 alpha 2, see :ref:`the 1.0 alpha 2 release notes <releases-1.0-alpha-2>`.
 
 This beta release does not contain any major new features, but does
 include several smaller updates and improvements to Django:
@@ -30,15 +30,15 @@ include several smaller updates and improvements to Django:
 Generic relations in forms and admin
     Classes are now included in ``django.contrib.contenttypes`` which
     can be used to support generic relations in both the admin
-    interface and in end-user forms. See `the documentation for
-    generic relations`_ for details.
+    interface and in end-user forms. See :ref:`the documentation for
+    generic relations <generic-relations>` for details.
 
 Improved flexibility in the admin
     Following up on the refactoring of Django's administrative
     interface (``django.contrib.admin``), introduced in Django 1.0
     alpha 1, two new hooks have been added to allow customized pre-
     and post-save handling of model instances in the admin. Full
-    details are in `the admin documentation`_.
+    details are in :ref:`the admin documentation <ref-contrib-admin>`.
 
 ``INSERT``/``UPDATE`` distinction
     Although Django's default behavior of having a model's ``save()``
@@ -47,7 +47,7 @@ Improved flexibility in the admin
     cases, there are occasional situations where forcing one or the
     other is useful. As a result, models can now support an additional
     parameter to ``save()`` which can force a specific
-    operation. Consult `the database API documentation`_ for details
+    operation. Consult the database API documentation for details
     and important notes about appropriate use of this parameter.
 
 Split ``CacheMiddleware``
@@ -58,7 +58,8 @@ Split ``CacheMiddleware``
    into and reading from the cache) separately, offering additional
    flexibility for situations where combining these functions into a
    single middleware posed problems. Full details, including updated
-   notes on appropriate use, are in `the caching documentation`_.
+   notes on appropriate use, are in 
+   :ref:`the caching documentation <topics-cache>`.
 
 Removal of deprecated features
     A number of features and methods which had previously been marked
@@ -79,12 +80,7 @@ collations have been resolved, Windows packaging and installation has
 been improved and the method by which Django generates unique session
 identifiers has been made much more robust.
 
-.. _the 1.0 alpha 1 release notes: ../release_notes_1.0_alpha/
-.. _the 1.0 alpha 2 release notes: ../release_notes_1.0_alpha_2/
 .. _the documentation for generic relations: ../contenttypes/#generic-relations
-.. _the admin documentation: ../admin/#modeladmin-methods
-.. _the database API documentation: ../db-api/#forcing-an-insert-or-update
-.. _the caching documentation: ../cache/#the-per-site-cache
 .. _the Django wiki: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#Removedseveralmoredeprecatedfeaturesfor1.0
 
 
diff --git a/docs/releases/index.txt b/docs/releases/index.txt
new file mode 100644
index 0000000000..b9c01ec5ed
--- /dev/null
+++ b/docs/releases/index.txt
@@ -0,0 +1,26 @@
+.. _releases-index:
+
+Release notes
+=============
+
+Releases notes for the official Django releases. Each release note will tell you
+what's new in each version, and will also describe any backwards-incompatible
+changes made in that version.
+
+.. toctree::
+   :maxdepth: 1
+   
+   0.95
+   0.96
+   1.0-alpha-1
+   1.0-alpha-2
+   1.0-beta
+
+.. seealso::
+
+    The list of `backwards-incompatible changes`_ made in the current
+    development "trunk". If you're running versions of Django newer than an
+    official release, you should keep track of new pieces pointed there. It's
+    also fun reading if you're looking forward to new versions of Django.
+    
+.. _backwards-incompatible changes: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
\ No newline at end of file
diff --git a/docs/sitemaps.txt b/docs/sitemaps.txt
deleted file mode 100644
index 3e7411c168..0000000000
--- a/docs/sitemaps.txt
+++ /dev/null
@@ -1,334 +0,0 @@
-=====================
-The sitemap framework
-=====================
-
-Django comes with a high-level sitemap-generating framework that makes
-creating sitemap_ XML files easy.
-
-.. _sitemap: http://www.sitemaps.org/
-
-Overview
-========
-
-A sitemap is an XML file on your Web site that tells search-engine indexers how
-frequently your pages change and how "important" certain pages are in relation
-to other pages on your site. This information helps search engines index your
-site.
-
-The Django sitemap framework automates the creation of this XML file by letting
-you express this information in Python code.
-
-It works much like Django's `syndication framework`_. To create a sitemap, just
-write a ``Sitemap`` class and point to it in your URLconf_.
-
-.. _syndication framework: ../syndication_feeds/
-.. _URLconf: ../url_dispatch/
-
-Installation
-============
-
-To install the sitemap app, follow these steps:
-
-    1. Add ``'django.contrib.sitemaps'`` to your INSTALLED_APPS_ setting.
-    2. Make sure ``'django.template.loaders.app_directories.load_template_source'``
-       is in your TEMPLATE_LOADERS_ setting. It's in there by default, so
-       you'll only need to change this if you've changed that setting.
-    3. Make sure you've installed the `sites framework`_.
-
-(Note: The sitemap application doesn't install any database tables. The only
-reason it needs to go into ``INSTALLED_APPS`` is so that the
-``load_template_source`` template loader can find the default templates.)
-
-.. _INSTALLED_APPS: ../settings/#installed-apps
-.. _TEMPLATE_LOADERS: ../settings/#template-loaders
-.. _sites framework: ../sites/
-
-Initialization
-==============
-
-To activate sitemap generation on your Django site, add this line to your
-URLconf_::
-
-    (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
-
-This tells Django to build a sitemap when a client accesses ``/sitemap.xml``.
-
-The name of the sitemap file is not important, but the location is. Search
-engines will only index links in your sitemap for the current URL level and
-below. For instance, if ``sitemap.xml`` lives in your root directory, it may
-reference any URL in your site. However, if your sitemap lives at
-``/content/sitemap.xml``, it may only reference URLs that begin with
-``/content/``.
-
-The sitemap view takes an extra, required argument: ``{'sitemaps': sitemaps}``.
-``sitemaps`` should be a dictionary that maps a short section label (e.g.,
-``blog`` or ``news``) to its ``Sitemap`` class (e.g., ``BlogSitemap`` or
-``NewsSitemap``). It may also map to an *instance* of a ``Sitemap`` class
-(e.g., ``BlogSitemap(some_var)``).
-
-.. _URLconf: ../url_dispatch/
-
-Sitemap classes
-===============
-
-A ``Sitemap`` class is a simple Python class that represents a "section" of
-entries in your sitemap. For example, one ``Sitemap`` class could represent all
-the entries of your weblog, while another could represent all of the events in
-your events calendar.
-
-In the simplest case, all these sections get lumped together into one
-``sitemap.xml``, but it's also possible to use the framework to generate a
-sitemap index that references individual sitemap files, one per section. (See
-`Creating a sitemap index`_ below.)
-
-``Sitemap`` classes must subclass ``django.contrib.sitemaps.Sitemap``. They can
-live anywhere in your codebase.
-
-A simple example
-================
-
-Let's assume you have a blog system, with an ``Entry`` model, and you want your
-sitemap to include all the links to your individual blog entries. Here's how
-your sitemap class might look::
-
-    from django.contrib.sitemaps import Sitemap
-    from mysite.blog.models import Entry
-
-    class BlogSitemap(Sitemap):
-        changefreq = "never"
-        priority = 0.5
-
-        def items(self):
-            return Entry.objects.filter(is_draft=False)
-
-        def lastmod(self, obj):
-            return obj.pub_date
-
-Note:
-
-    * ``changefreq`` and ``priority`` are class attributes corresponding to
-      ``<changefreq>`` and ``<priority>`` elements, respectively. They can be
-      made callable as functions, as ``lastmod`` was in the example.
-    * ``items()`` is simply a method that returns a list of objects. The objects
-      returned will get passed to any callable methods corresponding to a
-      sitemap property (``location``, ``lastmod``, ``changefreq``, and
-      ``priority``).
-    * ``lastmod`` should return a Python ``datetime`` object.
-    * There is no ``location`` method in this example, but you can provide it
-      in order to specify the URL for your object. By default, ``location()``
-      calls ``get_absolute_url()`` on each object and returns the result.
-
-Sitemap class reference
-=======================
-
-A ``Sitemap`` class can define the following methods/attributes:
-
-``items``
----------
-
-**Required.** A method that returns a list of objects. The framework doesn't
-care what *type* of objects they are; all that matters is that these objects
-get passed to the ``location()``, ``lastmod()``, ``changefreq()`` and
-``priority()`` methods.
-
-``location``
-------------
-
-**Optional.** Either a method or attribute.
-
-If it's a method, it should return the absolute URL for a given object as
-returned by ``items()``.
-
-If it's an attribute, its value should be a string representing an absolute URL
-to use for *every* object returned by ``items()``.
-
-In both cases, "absolute URL" means a URL that doesn't include the protocol or
-domain. Examples:
-
-    * Good: ``'/foo/bar/'``
-    * Bad: ``'example.com/foo/bar/'``
-    * Bad: ``'http://example.com/foo/bar/'``
-
-If ``location`` isn't provided, the framework will call the
-``get_absolute_url()`` method on each object as returned by ``items()``.
-
-``lastmod``
------------
-
-**Optional.** Either a method or attribute.
-
-If it's a method, it should take one argument -- an object as returned by
-``items()`` -- and return that object's last-modified date/time, as a Python
-``datetime.datetime`` object.
-
-If it's an attribute, its value should be a Python ``datetime.datetime`` object
-representing the last-modified date/time for *every* object returned by
-``items()``.
-
-``changefreq``
---------------
-
-**Optional.** Either a method or attribute.
-
-If it's a method, it should take one argument -- an object as returned by
-``items()`` -- and return that object's change frequency, as a Python string.
-
-If it's an attribute, its value should be a string representing the change
-frequency of *every* object returned by ``items()``.
-
-Possible values for ``changefreq``, whether you use a method or attribute, are:
-
-    * ``'always'``
-    * ``'hourly'``
-    * ``'daily'``
-    * ``'weekly'``
-    * ``'monthly'``
-    * ``'yearly'``
-    * ``'never'``
-
-``priority``
-------------
-
-**Optional.** Either a method or attribute.
-
-If it's a method, it should take one argument -- an object as returned by
-``items()`` -- and return that object's priority, as either a string or float.
-
-If it's an attribute, its value should be either a string or float representing
-the priority of *every* object returned by ``items()``.
-
-Example values for ``priority``: ``0.4``, ``1.0``. The default priority of a
-page is ``0.5``. See the `sitemaps.org documentation`_ for more.
-
-.. _sitemaps.org documentation: http://www.sitemaps.org/protocol.html#prioritydef
-
-Shortcuts
-=========
-
-The sitemap framework provides a couple convenience classes for common cases:
-
-``FlatPageSitemap``
--------------------
-
-The ``django.contrib.sitemaps.FlatPageSitemap`` class looks at all flatpages_
-defined for the current ``SITE_ID`` (see the `sites documentation`_) and
-creates an entry in the sitemap. These entries include only the ``location``
-attribute -- not ``lastmod``, ``changefreq`` or ``priority``.
-
-.. _flatpages: ../flatpages/
-.. _sites documentation: ../sites/
-
-``GenericSitemap``
-------------------
-
-The ``GenericSitemap`` class works with any `generic views`_ you already have.
-To use it, create an instance, passing in the same ``info_dict`` you pass to
-the generic views. The only requirement is that the dictionary have a
-``queryset`` entry. It may also have a ``date_field`` entry that specifies a
-date field for objects retrieved from the ``queryset``. This will be used for
-the ``lastmod`` attribute in the generated sitemap. You may also pass
-``priority`` and ``changefreq`` keyword arguments to the ``GenericSitemap``
-constructor to specify these attributes for all URLs.
-
-.. _generic views: ../generic_views/
-
-Example
--------
-
-Here's an example of a URLconf_ using both::
-
-    from django.conf.urls.defaults import *
-    from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap
-    from mysite.blog.models import Entry
-
-    info_dict = {
-        'queryset': Entry.objects.all(),
-        'date_field': 'pub_date',
-    }
-
-    sitemaps = {
-        'flatpages': FlatPageSitemap,
-        'blog': GenericSitemap(info_dict, priority=0.6),
-    }
-
-    urlpatterns = patterns('',
-        # some generic view using info_dict
-        # ...
-
-        # the sitemap
-        (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
-    )
-
-.. _URLconf: ../url_dispatch/
-
-Creating a sitemap index
-========================
-
-The sitemap framework also has the ability to create a sitemap index that
-references individual sitemap files, one per each section defined in your
-``sitemaps`` dictionary. The only differences in usage are:
-
-    * You use two views in your URLconf: ``django.contrib.sitemaps.views.index``
-      and ``django.contrib.sitemaps.views.sitemap``.
-    * The ``django.contrib.sitemaps.views.sitemap`` view should take a
-      ``section`` keyword argument.
-
-Here is what the relevant URLconf lines would look like for the example above::
-
-    (r'^sitemap.xml$', 'django.contrib.sitemaps.views.index', {'sitemaps': sitemaps})
-    (r'^sitemap-(?P<section>.+).xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
-
-This will automatically generate a ``sitemap.xml`` file that references
-both ``sitemap-flatpages.xml`` and ``sitemap-blog.xml``. The ``Sitemap``
-classes and the ``sitemaps`` dict don't change at all.
-
-If one of your sitemaps is going to have more than 50,000 URLs you should 
-create an index file. Your sitemap will be paginated and the index will 
-reflect that.
-
-Pinging Google
-==============
-
-You may want to "ping" Google when your sitemap changes, to let it know to
-reindex your site. The framework provides a function to do just that:
-``django.contrib.sitemaps.ping_google()``.
-
-``ping_google()`` takes an optional argument, ``sitemap_url``, which should be
-the absolute URL of your site's sitemap (e.g., ``'/sitemap.xml'``). If this
-argument isn't provided, ``ping_google()`` will attempt to figure out your
-sitemap by performing a reverse looking in your URLconf.
-
-``ping_google()`` raises the exception
-``django.contrib.sitemaps.SitemapNotFound`` if it cannot determine your sitemap
-URL.
-
-One useful way to call ``ping_google()`` is from a model's ``save()`` method::
-
-    from django.contrib.sitemaps import ping_google
-
-    class Entry(models.Model):
-        # ...
-        def save(self):
-            super(Entry, self).save()
-            try:
-                ping_google()
-            except Exception:
-                # Bare 'except' because we could get a variety
-                # of HTTP-related exceptions.
-                pass
-
-A more efficient solution, however, would be to call ``ping_google()`` from a
-cron script, or some other scheduled task. The function makes an HTTP request
-to Google's servers, so you may not want to introduce that network overhead
-each time you call ``save()``.
-
-Pinging Google via `manage.py`
-------------------------------
-
-**New in Django development version**
-
-Once the sitemaps application is added to your project, you may also
-ping the Google server's through the command line manage.py interface::
-
-    python manage.py ping_google [/sitemap.xml]
-
diff --git a/docs/topics/auth.txt b/docs/topics/auth.txt
new file mode 100644
index 0000000000..ca73b92ea8
--- /dev/null
+++ b/docs/topics/auth.txt
@@ -0,0 +1,1334 @@
+.. _topics-auth:
+
+=============================
+User authentication in Django
+=============================
+
+.. module:: django.contrib.auth
+   :synopsis: Django's authentication framework.
+
+Django comes with a user authentication system. It handles user accounts,
+groups, permissions and cookie-based user sessions. This document explains how
+things work.
+
+Overview
+========
+
+The auth system consists of:
+
+    * Users
+    * Permissions: Binary (yes/no) flags designating whether a user may perform
+      a certain task.
+    * Groups: A generic way of applying labels and permissions to more than one
+      user.
+    * Messages: A simple way to queue messages for given users.
+
+Installation
+============
+
+Authentication support is bundled as a Django application in
+``django.contrib.auth``. To install it, do the following:
+
+    1. Put ``'django.contrib.auth'`` in your :setting:`INSTALLED_APPS` setting.
+    2. Run the command ``manage.py syncdb``.
+
+Note that the default :file:`settings.py` file created by
+:djadmin:`django-admin.py startproject` includes ``'django.contrib.auth'`` in
+:setting:`INSTALLED_APPS` for convenience. If your :setting:`INSTALLED_APPS`
+already contains ``'django.contrib.auth'``, feel free to run
+:djadmin:`manage.py syncdb` again; you can run that command as many times as
+you'd like, and each time it'll only install what's needed.
+
+The :djadmin:`syncdb` command creates the necessary database tables, creates
+permission objects for all installed apps that need 'em, and prompts you to
+create a superuser account the first time you run it.
+
+Once you've taken those steps, that's it.
+
+Users
+=====
+
+.. class:: models.User
+
+API reference
+-------------
+
+Fields
+~~~~~~
+
+.. class:: models.User
+
+    :class:`~django.contrib.auth.models.User` objects have the following fields:
+
+    .. attribute:: models.User.username
+
+        Required. 30 characters or fewer. Alphanumeric characters only (letters,
+        digits and underscores).
+
+    .. attribute:: models.User.first_name
+
+        Optional. 30 characters or fewer.
+
+    .. attribute:: models.User.last_name
+
+        Optional. 30 characters or fewer.
+
+    .. attribute:: models.User.email
+
+        Optional. E-mail address.
+
+    .. attribute:: models.User.password
+
+        Required. A hash of, and metadata about, the password. (Django doesn't
+        store the raw password.) Raw passwords can be arbitrarily long and can
+        contain any character. See the "Passwords" section below.
+
+    .. attribute:: models.User.is_staff
+
+        Boolean. Designates whether this user can access the admin site.
+
+    .. attribute:: models.User.is_active
+
+        Boolean. Designates whether this account can be used to log in. Set this
+        flag to ``False`` instead of deleting accounts.
+
+    .. attribute:: models.User.is_superuser
+
+        Boolean. Designates that this user has all permissions without explicitly
+        assigning them.
+
+    .. attribute:: models.User.last_login
+
+        A datetime of the user's last login. Is set to the current date/time by
+        default.
+
+    .. attribute:: models.User.date_joined
+
+        A datetime designating when the account was created. Is set to the current
+        date/time by default when the account is created.
+
+Methods
+~~~~~~~
+
+.. class:: models.User
+
+    :class:`~django.contrib.auth.models.User` objects have two many-to-many
+    fields: models.User. ``groups`` and ``user_permissions``.
+    :class:`~django.contrib.auth.models.User` objects can access their related
+    objects in the same way as any other :ref:`Django model <topics-db-models>`:
+
+    .. code-block:: python
+
+        myuser.groups = [group_list]
+        myuser.groups.add(group, group, ...)
+        myuser.groups.remove(group, group, ...)
+        myuser.groups.clear()
+        myuser.user_permissions = [permission_list]
+        myuser.user_permissions.add(permission, permission, ...)
+        myuser.user_permissions.remove(permission, permission, ...)
+        myuser.user_permissions.clear()
+
+    In addition to those automatic API methods,
+    :class:`~django.contrib.auth.models.User` objects have the following custom
+    methods:
+
+    .. method:: models.User.is_anonymous()
+
+        Always returns ``False``. This is a way of differentiating
+        :class:`~django.contrib.auth.models.User` and
+        :class:`~django.contrib.auth.models.AnonymousUser` objects.
+        Generally, you should prefer using
+        :meth:`~django.contrib.auth.models.User.is_authenticated()` to this
+        method.
+
+    .. method:: models.User.is_authenticated()
+
+        Always returns ``True``. This is a way to
+        tell if the user has been authenticated. This does not imply any
+        permissions, and doesn't check if the user is active - it only indicates
+        that the user has provided a valid username and password.
+
+    .. method:: models.User.get_full_name()
+
+        Returns the :attr:`~django.contrib.auth.models.User.first_name` plus the
+        :attr:`~django.contrib.auth.models.User.last_name`,
+        with a space in between.
+
+    .. method:: models.User.set_password(raw_password)
+
+        Sets the user's password to the given raw string, taking care of the
+        password hashing. Doesn't save the
+        :class:`~django.contrib.auth.models.User` object.
+
+    .. method:: models.User.check_password(raw_password)
+
+        Returns ``True`` if the given raw string is the correct password for the
+        user. (This takes care of the password hashing in making the comparison.)
+
+    .. method:: models.User.set_unusable_password()
+
+        **New in Django development version.**
+        Marks the user as having no password set.  This isn't the same as having
+        a blank string for a password.
+        :meth:`~django.contrib.auth.models.User.check_password()` for this user
+        will never return ``True``. Doesn't save the
+        :class:`~django.contrib.auth.models.User` object.
+
+        You may need this if authentication for your application takes place
+        against an existing external source such as an LDAP directory.
+
+    .. method:: models.User.has_usable_password()
+
+        **New in Django development version.**
+        Returns ``False`` if
+        :meth:`~django.contrib.auth.models.User.set_unusable_password()` has
+        been called for this user.
+
+    .. method:: models.User.get_group_permissions()
+
+        Returns a list of permission strings that the user has, through his/her
+        groups.
+
+    .. method:: models.User.get_all_permissions()
+
+        Returns a list of permission strings that the user has, both through group
+        and user permissions.
+
+    .. method:: models.User.has_perm(perm)
+
+        Returns ``True`` if the user has the specified permission, where perm is
+        in the format ``"package.codename"``. If the user is inactive, this method
+        will always return ``False``.
+
+    .. method:: models.User.has_perms(perm_list)
+
+        Returns ``True`` if the user has each of the specified permissions, where
+        each perm is in the format ``"package.codename"``. If the user is inactive,
+        this method will always return ``False``.
+
+    .. method:: models.User.has_module_perms(package_name)
+
+        Returns ``True`` if the user has any permissions in the given package (the
+        Django app label). If the user is inactive, this method will always return
+        ``False``.
+
+    .. method:: models.User.get_and_delete_messages()
+
+        Returns a list of :class:`~django.contrib.auth.models.Message` objects in
+        the user's queue and deletes the messages from the queue.
+
+    .. method:: models.User.email_user(subject, message, from_email=None)
+
+        Sends an e-mail to the user. If
+        :attr:`~django.contrib.auth.models.User.from_email` is ``None``, Django
+        uses the :setting:`DEFAULT_FROM_EMAIL`.
+
+    .. method:: models.User.get_profile()
+
+        Returns a site-specific profile for this user. Raises
+        :exc:`django.contrib.auth.models.SiteProfileNotAvailable` if the current
+        site doesn't allow profiles. For information on how to define a
+        site-specific user profile, see the section on
+        `storing additional user information`_ below.
+
+.. _storing additional user information: #storing-additional-information-about-users
+
+Manager functions
+~~~~~~~~~~~~~~~~~
+
+.. class:: models.UserManager
+
+    The :class:`~django.contrib.auth.models.User` model has a custom manager
+    that has the following helper functions:
+
+    .. method:: models.UserManager.create_user(username, email, password=None)
+
+        Creates, saves and returns a :class:`~django.contrib.auth.models.User`.
+        The :attr:`~django.contrib.auth.models.User.username`, 
+        :attr:`~django.contrib.auth.models.User.email` and 
+        :attr:`~django.contrib.auth.models.User.password` are set as given, and the
+        :class:`~django.contrib.auth.models.User` gets ``is_active=True``.
+
+        If no password is provided,
+        :meth:`~django.contrib.auth.models.User.set_unusable_password()` will be
+        called.
+
+        See `Creating users`_ for example usage.
+
+    .. method:: models.UserManager.make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789')
+
+        Returns a random password with the given length and given string of
+        allowed characters. (Note that the default value of ``allowed_chars``
+        doesn't contain letters that can cause user confusion, including ``1``,
+        ``I`` and ``0``).
+
+Basic usage
+-----------
+
+.. _topics-auth-creating-users:
+
+Creating users
+~~~~~~~~~~~~~~
+
+The most basic way to create users is to use the
+:meth:`~django.contrib.auth.models.UserManager.create_user` helper function
+that comes with Django::
+
+    >>> from django.contrib.auth.models import User
+    >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
+
+    # At this point, user is a User object that has already been saved
+    # to the database. You can continue to change its attributes
+    # if you want to change other fields.
+    >>> user.is_staff = True
+    >>> user.save()
+
+Changing passwords
+~~~~~~~~~~~~~~~~~~
+
+Change a password with :meth:`~django.contrib.auth.models.User.set_password()`::
+
+    >>> from django.contrib.auth.models import User
+    >>> u = User.objects.get(username__exact='john')
+    >>> u.set_password('new password')
+    >>> u.save()
+
+Don't set the :attr:`~django.contrib.auth.models.User.password` attribute
+directly unless you know what you're doing. This is explained in the next
+section.
+
+Passwords
+---------
+
+The :attr:`~django.contrib.auth.models.User.password` attribute of a
+:class:`~django.contrib.auth.models.User` object is a string in this format::
+
+    hashtype$salt$hash
+
+That's hashtype, salt and hash, separated by the dollar-sign character.
+
+Hashtype is either ``sha1`` (default), ``md5`` or ``crypt`` -- the algorithm
+used to perform a one-way hash of the password. Salt is a random string used
+to salt the raw password to create the hash. Note that the ``crypt`` method is
+only supported on platforms that have the standard Python ``crypt`` module
+available, and ``crypt`` support is only available in the Django development
+version.
+
+For example::
+
+    sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4
+
+The :meth:`~django.contrib.auth.models.User.set_password` and
+:meth:`~django.contrib.auth.models.User.check_password` functions handle the
+setting and checking of these values behind the scenes.
+
+Previous Django versions, such as 0.90, used simple MD5 hashes without password
+salts. For backwards compatibility, those are still supported; they'll be
+converted automatically to the new style the first time
+:meth:`~django.contrib.auth.models.User.check_password()` works correctly for
+a given user.
+
+Anonymous users
+---------------
+
+.. class:: models.AnonymousUser
+
+    :class:`django.contrib.auth.models.AnonymousUser` is a class that
+    implements the :class:`django.contrib.auth.models.User` interface, with
+    these differences:
+
+    * :attr:`~django.contrib.auth.models.User.id` is always ``None``.
+    * :attr:`~django.contrib.auth.models.User.is_staff` and
+      :attr:`~django.contrib.auth.models.User.is_superuser` are always ``False``.
+    * :attr:`~django.contrib.auth.models.User.is_active` is always ``False``.
+    * :attr:`~django.contrib.auth.models.User.groups` and
+      :attr:`~django.contrib.auth.models.User.user_permissions` are always empty.
+    * :meth:`~django.contrib.auth.models.User.is_anonymous()` returns ``True``
+      instead of ``False``.
+    * :meth:`~django.contrib.auth.models.User.is_authenticated()` returns
+      ``False`` instead of ``True``.
+    * :meth:`~django.contrib.auth.models.User.has_perm()` always returns ``False``.
+    * :meth:`~django.contrib.auth.models.User.set_password()`,
+      :meth:`~django.contrib.auth.models.User.check_password()`, 
+      :meth:`~django.contrib.auth.models.User.save()`, 
+      :meth:`~django.contrib.auth.models.User.delete()`,
+      :meth:`~django.contrib.auth.models.User.set_groups()` and 
+      :meth:`~django.contrib.auth.models.User.set_permissions()` raise 
+      :exc:`NotImplementedError`.
+
+In practice, you probably won't need to use
+:class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but
+they're used by Web requests, as explained in the next section.
+
+Creating superusers
+-------------------
+
+:djadmin:`manage.py syncdb <syncdb>` prompts you to create a superuser the first time
+you run it after adding ``'django.contrib.auth'`` to your
+:setting:`INSTALLED_APPS`. If you need to create a superuser at a later date,
+you can use a command line utility.
+
+**New in Django development version.**::
+
+    manage.py createsuperuser --username=joe --email=joe@example.com
+
+You will be prompted for a password. After you enter one, the user will be
+created immediately. If you leave off the :djadminopt:`--username` or the
+:djadminopt:`--email` options, it will prompt you for those values.
+
+If you're using an older release of Django, the old way of creating a superuser
+on the command line still works::
+
+    python /path/to/django/contrib/auth/create_superuser.py
+
+...where :file:`/path/to` is the path to the Django codebase on your
+filesystem. The ``manage.py`` command is preferred because it figures
+out the correct path and environment for you.
+
+.. _auth-profiles:
+
+Storing additional information about users
+------------------------------------------
+
+If you'd like to store additional information related to your users,
+Django provides a method to specify a site-specific related model --
+termed a "user profile" -- for this purpose.
+
+To make use of this feature, define a model with fields for the
+additional information you'd like to store, or additional methods
+you'd like to have available, and also add a
+:class:`~django.db.models.Field.ForeignKey` from your model to the
+:class:`~django.contrib.auth.models.User` model, specified with ``unique=True``
+to ensure only one instance of your model can be created for each
+:class:`~django.contrib.auth.models.User`.
+
+To indicate that this model is the user profile model for a given
+site, fill in the setting :setting:`AUTH_PROFILE_MODULE` with a string
+consisting of the following items, separated by a dot:
+
+1. The (normalized to lower-case) name of the application in which the
+   user profile model is defined (in other words, an all-lowercase
+   version of the name which was passed to
+   :djadmin:`manage.py startapp <startapp>` to create the application).
+
+2. The (normalized to lower-case) name of the model class.
+
+For example, if the profile model was a class named ``UserProfile``
+and was defined inside an application named ``accounts``, the
+appropriate setting would be::
+
+    AUTH_PROFILE_MODULE = 'accounts.userprofile'
+
+When a user profile model has been defined and specified in this
+manner, each :class:`~django.contrib.auth.models.User` object will have a
+method -- :class:`~django.contrib.auth.models.User.get_profile()`
+-- which returns the instance of the user profile model associated
+with that :class:`~django.contrib.auth.models.User`.
+
+For more information, see `Chapter 12 of the Django book`_.
+
+.. _Chapter 12 of the Django book: http://www.djangobook.com/en/1.0/chapter12/#cn222
+
+Authentication in Web requests
+==============================
+
+Until now, this document has dealt with the low-level APIs for manipulating
+authentication-related objects. On a higher level, Django can hook this
+authentication framework into its system of
+:class:`request objects <django.http.HttpRequest>`.
+
+First, install the
+:class:`~django.contrib.sessions.middleware.SessionMiddleware` and
+:class:`~django.contrib.auth.middleware.AuthenticationMiddleware`
+middlewares by adding them to your :setting:`MIDDLEWARE_CLASSES` setting. See
+the :ref:`session documentation <topics-http-sessions>` for more information.
+
+Once you have those middlewares installed, you'll be able to access
+:attr:`request.user <django.http.HttpRequest.user>` in views.
+:attr:`request.user <django.http.HttpRequest.user>` will give you a
+:class:`~django.contrib.auth.models.User` object representing the currently
+logged-in user. If a user isn't currently logged in,
+:attr:`request.user <django.http.HttpRequest.user>` will be set to an instance
+of :class:`~django.contrib.auth.models.AnonymousUser` (see the previous
+section). You can tell them apart with
+:meth:`~django.contrib.auth.models.User.is_authenticated()`, like so::
+
+    if request.user.is_authenticated():
+        # Do something for authenticated users.
+    else:
+        # Do something for anonymous users.
+
+How to log a user in
+--------------------
+
+Django provides two functions in :mod:`django.contrib.auth`:
+:func:`~django.contrib.auth.authenticate()` and
+:func:`~django.contrib.auth.login()`.
+
+.. function:: authenticate()
+
+    To authenticate a given username and password, use
+    :func:`~django.contrib.auth.authenticate()`. It
+    takes two keyword arguments, ``username`` and ``password``, and it returns
+    a :class:`~django.contrib.auth.models.User` object if the password is
+    valid for the given username. If the password is invalid,
+    :func:`~django.contrib.auth.authenticate()` returns ``None``. Example::
+
+        from django.contrib.auth import authenticate
+        user = authenticate(username='john', password='secret')
+        if user is not None:
+            if user.is_active:
+                print "You provided a correct username and password!"
+            else:
+                print "Your account has been disabled!"
+        else:
+            print "Your username and password were incorrect."
+
+.. function:: login()
+
+    To log a user in, in a view, use :func:`~django.contrib.auth.login()`. It
+    takes an :class:`~django.http.HttpRequest` object and a
+    :class:`~django.contrib.auth.models.User` object.
+    :func:`~django.contrib.auth.login()` saves the user's ID in the session,
+    using Django's session framework, so, as mentioned above, you'll need to
+    make sure to have the session middleware installed.
+
+    This example shows how you might use both
+    :func:`~django.contrib.auth.authenticate()` and
+    :func:`~django.contrib.auth.login()`::
+
+        from django.contrib.auth import authenticate, login
+
+        def my_view(request):
+            username = request.POST['username']
+            password = request.POST['password']
+            user = authenticate(username=username, password=password)
+            if user is not None:
+                if user.is_active:
+                    login(request, user)
+                    # Redirect to a success page.
+                else:
+                    # Return a 'disabled account' error message
+            else:
+                # Return an 'invalid login' error message.
+
+.. admonition:: Calling ``authenticate()`` first
+
+    When you're manually logging a user in, you *must* call
+    :func:`~django.contrib.auth.authenticate()` before you call
+    :func:`~django.contrib.auth.login()`.
+    :func:`~django.contrib.auth.authenticate()`
+    sets an attribute on the :class:`~django.contrib.auth.models.User` noting
+    which authentication backend successfully authenticated that user (see
+    the `backends documentation`_ for details), and this information is
+    needed later during the login process.
+
+.. _backends documentation: #other-authentication-sources
+
+Manually checking a user's password
+-----------------------------------
+
+.. function:: check_password()
+
+    If you'd like to manually authenticate a user by comparing a
+    plain-text password to the hashed password in the database, use the
+    convenience function :func:`django.contrib.auth.models.check_password`. It
+    takes two arguments: the plain-text password to check, and the full
+    value of a user's ``password`` field in the database to check against,
+    and returns ``True`` if they match, ``False`` otherwise.
+
+How to log a user out
+---------------------
+
+.. function:: logout()
+
+    To log out a user who has been logged in via
+    :func:`django.contrib.auth.login()`, use
+    :func:`django.contrib.auth.logout()` within your view. It takes an
+    :class:`~django.http.HttpRequest` object and has no return value.
+    Example::
+
+        from django.contrib.auth import logout
+
+        def logout_view(request):
+            logout(request)
+            # Redirect to a success page.
+
+    Note that :func:`~django.contrib.auth.logout()` doesn't throw any errors
+    if the user wasn't logged in.
+
+    **New in Django development version:** When you call
+    :func:`~django.contrib.auth.logout()`, the session
+    data for the current request is completely cleaned out. All existing data
+    is removed. This is to prevent another person from using the same web
+    browser to log in and have access to the previous user's session data.
+    If you want to put anything into the session that will be available to
+    the user immediately after logging out, do that *after* calling
+    :func:`django.contrib.auth.logout()`.
+
+Limiting access to logged-in users
+----------------------------------
+
+The raw way
+~~~~~~~~~~~
+
+The simple, raw way to limit access to pages is to check
+:meth:`request.user.is_authenticated()
+<django.contrib.auth.models.User.is_authenticated()>` and either redirect to a
+login page::
+
+    from django.http import HttpResponseRedirect
+
+    def my_view(request):
+        if not request.user.is_authenticated():
+            return HttpResponseRedirect('/login/?next=%s' % request.path)
+        # ...
+
+...or display an error message::
+
+    def my_view(request):
+        if not request.user.is_authenticated():
+            return render_to_response('myapp/login_error.html')
+        # ...
+
+The login_required decorator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. function:: decorators.login_required()
+
+    As a shortcut, you can use the convenient
+    :func:`~django.contrib.auth.decorators.login_required` decorator::
+
+        from django.contrib.auth.decorators import login_required
+
+        def my_view(request):
+            # ...
+        my_view = login_required(my_view)
+
+    Here's an equivalent example, using the more compact decorator syntax
+    introduced in Python 2.4::
+
+        from django.contrib.auth.decorators import login_required
+
+        @login_required
+        def my_view(request):
+            # ...
+
+    In the Django development version,
+    :func:`~django.contrib.auth.decorators.login_required` also takes an
+    optional ``redirect_field_name`` parameter. Example::
+
+        from django.contrib.auth.decorators import login_required
+
+        def my_view(request):
+            # ...
+        my_view = login_required(redirect_field_name='redirect_to')(my_view)
+
+    Again, an equivalent example of the more compact decorator syntax
+    introduced in Python 2.4::
+
+        from django.contrib.auth.decorators import login_required
+
+        @login_required(redirect_field_name='redirect_to')
+        def my_view(request):
+            # ...
+
+    :func:`~django.contrib.auth.decorators.login_required` does the following:
+
+        * If the user isn't logged in, redirect to
+          :setting:`settings.LOGIN_URL <LOGIN_URL>` (``/accounts/login/`` by
+          default), passing the current absolute URL in the query string as
+          ``next`` or the value of ``redirect_field_name``. For example:
+          ``/accounts/login/?next=/polls/3/``.
+
+        * If the user is logged in, execute the view normally. The view code
+          is free to assume the user is logged in.
+
+Note that you'll need to map the appropriate Django view to
+:setting:`settings.LOGIN_URL <LOGIN_URL>`. For example, using the defaults, add
+the following line to your URLconf::
+
+    (r'^accounts/login/$', 'django.contrib.auth.views.login'),
+
+.. function:: views.login()
+
+    Here's what ``django.contrib.auth.views.login`` does:
+
+        * If called via ``GET``, it displays a login form that POSTs to the same
+          URL. More on this in a bit.
+
+        * If called via ``POST``, it tries to log the user in. If login is
+          successful, the view redirects to the URL specified in ``next``. If
+          ``next`` isn't provided, it redirects to :setting:`settings.LOGIN_REDIRECT_URL <LOGIN_REDIRECT_URL>`
+          (which defaults to ``/accounts/profile/``). If login isn't successful,
+          it redisplays the login form.
+
+    It's your responsibility to provide the login form in a template called
+    ``registration/login.html`` by default. This template gets passed three
+    template context variables:
+
+        * ``form``: A :class:`~django.forms.Form` object representing the
+          login form. See the :ref:`forms documentation <topics-forms-index>`
+          for more on ``FormWrapper`` objects.
+
+        * ``next``: The URL to redirect to after successful login. This may contain
+          a query string, too.
+
+        * ``site_name``: The name of the current
+          :class:`~django.contrib.sites.models.Site``, according to the
+          :setting:`SITE_ID` setting. If you're using the Django development version
+          and you don't have the site framework installed, this will be set to the
+          value of ``request.META['SERVER_NAME']``. For more on sites, see 
+          :ref:`ref-contrib-sites`.
+
+    If you'd prefer not to call the template :file:`registration/login.html`,
+    you can pass the ``template_name`` parameter via the extra arguments to
+    the view in your URLconf. For example, this URLconf line would use
+    :file:`myapp/login.html` instead::
+
+        (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),
+
+    Here's a sample :file:`registration/login.html` template you can use as a
+    starting point. It assumes you have a :file:`base.html` template that
+    defines a ``content`` block::
+
+        {% extends "base.html" %}
+
+        {% block content %}
+
+        {% if form.errors %}
+        <p>Your username and password didn't match. Please try again.</p>
+        {% endif %}
+
+        <form method="post" action=".">
+        <table>
+        <tr><td>{{ form.username.label_tag }}</td><td>{{ form.username }}</td></tr>
+        <tr><td>{{ form.password.label_tag }}</td><td>{{ form.password }}</td></tr>
+        </table>
+
+        <input type="submit" value="login" />
+        <input type="hidden" name="next" value="{{ next }}" />
+        </form>
+
+        {% endblock %}
+
+    .. _forms documentation: ../forms/
+    .. _site framework docs: ../sites/
+
+Other built-in views
+--------------------
+
+In addition to the ``login`` view, the authentication system includes a
+few other useful built-in views:
+
+.. function:: django.contrib.auth.views.logout
+
+    Logs a user out.
+
+    **Optional arguments:**
+
+        * ``template_name``: The full name of a template to display after
+          logging the user out. This will default to
+          :file:`registration/logged_out.html` if no argument is supplied.
+
+    **Template context:**
+
+        * ``title``: The string "Logged out", localized.
+
+.. function:: django.contrib.auth.views.logout_then_login
+
+    Logs a user out, then redirects to the login page.
+
+    **Optional arguments:**
+
+        * ``login_url``: The URL of the login page to redirect to. This
+          will default to :setting:`settings.LOGIN_URL <LOGIN_URL>` if not
+          supplied.
+
+.. function:: django.contrib.auth.views.password_change
+
+    Allows a user to change their password.
+
+    **Optional arguments:**
+
+        * ``template_name``: The full name of a template to use for
+          displaying the password change form. This will default to
+          :file:`registration/password_change_form.html` if not supplied.
+
+    **Template context:**
+
+        * ``form``: The password change form.
+
+.. function:: django.contrib.auth.views.password_change_done
+
+    The page shown after a user has changed their password.
+
+    **Optional arguments:**
+
+        * ``template_name``: The full name of a template to use. This will
+          default to :file:`registration/password_change_done.html` if not
+          supplied.
+
+.. function:: django.contrib.auth.views.password_reset
+
+    Allows a user to reset their password, and sends them the new password
+    in an e-mail.
+
+    **Optional arguments:**
+
+        * ``template_name``: The full name of a template to use for
+          displaying the password reset form. This will default to
+          :file:`registration/password_reset_form.html` if not supplied.
+
+        * ``email_template_name``: The full name of a template to use for
+          generating the e-mail with the new password. This will default to
+          :file:`registration/password_reset_email.html` if not supplied.
+
+    **Template context:**
+
+        * ``form``: The form for resetting the user's password.
+
+.. function:: django.contrib.auth.views.password_reset_done
+
+    The page shown after a user has reset their password.
+
+    **Optional arguments:**
+
+        * ``template_name``: The full name of a template to use. This will
+          default to :file:`registration/password_reset_done.html` if not
+          supplied.
+
+.. function:: django.contrib.auth.views.redirect_to_login
+
+    Redirects to the login page, and then back to another URL after a
+    successful login.
+
+    **Required arguments:**
+
+        * ``next``: The URL to redirect to after a successful login.
+
+    **Optional arguments:**
+
+        * ``login_url``: The URL of the login page to redirect to. This
+          will default to :setting:`settings.LOGIN_URL <LOGIN_URL>` if not
+          supplied.
+
+Built-in forms
+---------------------
+
+If you don't want to use the built-in views, but want the convenience
+of not having to write forms for this functionality, the authentication
+system provides several built-in forms:
+
+    * :class:`django.contrib.auth.forms.AdminPasswordChangeForm`: A form used
+      in the admin interface to change a user's password.
+
+    * :class:`django.contrib.auth.forms.AuthenticationForm`: A form for
+      logging a user in.
+
+    * :class:`django.contrib.auth.forms.PasswordChangeForm`: A form for
+      allowing a user to change their password.
+
+    * :class:`django.contrib.auth.forms.PasswordResetForm`: A form for
+      resetting a user's password and e-mailing the new password to them.
+
+    * :class:`django.contrib.auth.forms.UserCreationForm`: A form for creating
+      a new user.
+
+Limiting access to logged-in users that pass a test
+---------------------------------------------------
+
+To limit access based on certain permissions or some other test, you'd do
+essentially the same thing as described in the previous section.
+
+The simple way is to run your test on
+:attr:`request.user <django.http.HttpRequest.user>` in the view directly.
+For example, this view checks to make sure the user is logged in and has the
+permission ``polls.can_vote``::
+
+    def my_view(request):
+        if not (request.user.is_authenticated() and request.user.has_perm('polls.can_vote')):
+            return HttpResponse("You can't vote in this poll.")
+        # ...
+
+.. function:: decorators.user_passes_test()
+
+    As a shortcut, you can use the convenient ``user_passes_test`` decorator::
+
+        from django.contrib.auth.decorators import user_passes_test
+
+        def my_view(request):
+            # ...
+        my_view = user_passes_test(lambda u: u.has_perm('polls.can_vote'))(my_view)
+
+    We're using this particular test as a relatively simple example. However,
+    if you just want to test whether a permission is available to a user, you
+    can use the :func:`django.contrib.auth.decorators.permission_required()`
+    decorator, described later in this document.
+
+    Here's the same thing, using Python 2.4's decorator syntax::
+
+        from django.contrib.auth.decorators import user_passes_test
+
+        @user_passes_test(lambda u: u.has_perm('polls.can_vote'))
+        def my_view(request):
+            # ...
+
+    :func:`~django.contrib.auth.decorators.user_passes_test` takes a required
+    argument: a callable that takes a
+    :class:`~django.contrib.auth.models.User` object and returns ``True`` if
+    the user is allowed to view the page. Note that
+    :func:`~django.contrib.auth.decorators.user_passes_test` does not
+    automatically check that the :class:`~django.contrib.auth.models.User` is
+    not anonymous.
+
+    :func:`~django.contrib.auth.decorators.user_passes_test()` takes an
+    optional ``login_url`` argument, which lets you specify the URL for your
+    login page (:setting:`settings.LOGIN_URL <LOGIN_URL>` by default).
+
+    Example in Python 2.3 syntax::
+
+        from django.contrib.auth.decorators import user_passes_test
+
+        def my_view(request):
+            # ...
+        my_view = user_passes_test(lambda u: u.has_perm('polls.can_vote'), login_url='/login/')(my_view)
+
+    Example in Python 2.4 syntax::
+
+        from django.contrib.auth.decorators import user_passes_test
+
+        @user_passes_test(lambda u: u.has_perm('polls.can_vote'), login_url='/login/')
+        def my_view(request):
+            # ...
+
+The permission_required decorator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. function:: decorators.permission_required()
+
+    It's a relatively common task to check whether a user has a particular
+    permission. For that reason, Django provides a shortcut for that case: the
+    :func:`~django.contrib.auth.decorators.permission_required()` decorator.
+    Using this decorator, the earlier example can be written as::
+
+        from django.contrib.auth.decorators import permission_required
+
+        def my_view(request):
+            # ...
+        my_view = permission_required('polls.can_vote')(my_view)
+
+    Note that :func:`~django.contrib.auth.decorators.permission_required()`
+    also takes an optional ``login_url`` parameter. Example::
+
+        from django.contrib.auth.decorators import permission_required
+
+        def my_view(request):
+            # ...
+        my_view = permission_required('polls.can_vote', login_url='/loginpage/')(my_view)
+
+    As in the ``login_required`` decorator, ``login_url`` defaults to
+    :setting:`settings.LOGIN_URL <LOGIN_URL>`.
+
+Limiting access to generic views
+--------------------------------
+
+To limit access to a :ref:`generic view <ref-generic-views>`, write a thin
+wrapper around the view, and point your URLconf to your wrapper instead of the
+generic view itself. For example::
+
+    from django.views.generic.date_based import object_detail
+
+    @login_required
+    def limited_object_detail(*args, **kwargs):
+        return object_detail(*args, **kwargs)
+
+Permissions
+===========
+
+Django comes with a simple permissions system. It provides a way to assign
+permissions to specific users and groups of users.
+
+It's used by the Django admin site, but you're welcome to use it in your own
+code.
+
+The Django admin site uses permissions as follows:
+
+    * Access to view the "add" form and add an object is limited to users with
+      the "add" permission for that type of object.
+    * Access to view the change list, view the "change" form and change an
+      object is limited to users with the "change" permission for that type of
+      object.
+    * Access to delete an object is limited to users with the "delete"
+      permission for that type of object.
+
+Permissions are set globally per type of object, not per specific object
+instance. For example, it's possible to say "Mary may change news stories," but
+it's not currently possible to say "Mary may change news stories, but only the
+ones she created herself" or "Mary may only change news stories that have a
+certain status, publication date or ID." The latter functionality is something
+Django developers are currently discussing.
+
+Default permissions
+-------------------
+
+When ``django.contrib.auth`` is listed in your :setting:`INSTALLED_APPS`
+setting, it will ensure that three default permissions -- add, change
+and delete -- are created for each Django model defined in one of your
+installed applications.
+
+These permissions will be created when you run
+:djadmin:`manage.py syncdb <syncdb>`; the first time you run ``syncdb`` after
+adding ``django.contrib.auth`` to :setting:`INSTALLED_APPS`, the default
+permissions will be created for all previously-installed models, as well as
+for any new models being installed at that time. Afterward, it will create
+default permissions for new models each time you run
+:djadmin:`manage.py syncdb <syncdb>`.
+
+.. _custom-permissions:
+
+Custom permissions
+------------------
+
+To create custom permissions for a given model object, use the ``permissions``
+:ref:`model Meta attribute <meta-options>`.
+
+This example model creates three custom permissions::
+
+    class USCitizen(models.Model):
+        # ...
+        class Meta:
+            permissions = (
+                ("can_drive", "Can drive"),
+                ("can_vote", "Can vote in elections"),
+                ("can_drink", "Can drink alcohol"),
+            )
+
+The only thing this does is create those extra permissions when you run
+:djadmin:`manage.py syncdb <syncdb>`.
+
+API reference
+-------------
+
+.. class:: models.Permission
+
+    Just like users, permissions are implemented in a Django model that lives in
+    `django/contrib/auth/models.py`_.
+
+.. _django/contrib/auth/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/models.py
+
+Fields
+~~~~~~
+
+:class:`~django.contrib.auth.models.Permission` objects have the following
+fields:
+
+.. attribute:: models.Permission.name
+    
+    Required. 50 characters or fewer. Example: ``'Can vote'``.
+
+.. attribute:: models.Permission.content_type
+
+    Required. A reference to the ``django_content_type`` database table,
+    which contains a record for each installed Django model.
+
+.. attribute:: models.Permission.codename
+    
+    Required. 100 characters or fewer. Example: ``'can_vote'``.
+
+Methods
+~~~~~~~
+
+:class:`~django.contrib.auth.models.Permission` objects have the standard
+data-access methods like any other :ref:`Django model <ref-models-instances>`.
+
+Authentication data in templates
+================================
+
+The currently logged-in user and his/her permissions are made available in the
+:ref:`template context <ref-templates-api>` when you use
+:class:`~django.template.context.RequestContext`.
+
+.. admonition:: Technicality
+
+   Technically, these variables are only made available in the template context
+   if you use :class:`~django.template.context.RequestContext` *and* your
+   :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting contains
+   ``"django.core.context_processors.auth"``, which is default. For more, see
+   the :ref:`RequestContext docs <subclassing-context-requestcontext>`.
+   
+Users
+-----
+
+The currently logged-in user, either a
+:class:`~django.contrib.auth.models.User` instance or an
+:class:`~django.contrib.auth.models.AnonymousUser` instance, is stored in the
+template variable ``{{ user }}``::
+
+    {% if user.is_authenticated %}
+        <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
+    {% else %}
+        <p>Welcome, new user. Please log in.</p>
+    {% endif %}
+
+Permissions
+-----------
+
+The currently logged-in user's permissions are stored in the template variable
+``{{ perms }}``. This is an instance of
+:class:`django.core.context_processors.PermWrapper`, which is a
+template-friendly proxy of permissions.
+
+In the ``{{ perms }}`` object, single-attribute lookup is a proxy to
+:meth:`User.has_module_perms <django.contrib.auth.models.User.has_module_perms>`.
+This example would display ``True`` if the logged-in user had any permissions
+in the ``foo`` app::
+
+    {{ perms.foo }}
+
+Two-level-attribute lookup is a proxy to 
+:meth:`User.has_perm <django.contrib.auth.models.User.has_perm>`. This example
+would display ``True`` if the logged-in user had the permission
+``foo.can_vote``::
+
+    {{ perms.foo.can_vote }}
+
+Thus, you can check permissions in template ``{% if %}`` statements::
+
+    {% if perms.foo %}
+        <p>You have permission to do something in the foo app.</p>
+        {% if perms.foo.can_vote %}
+            <p>You can vote!</p>
+        {% endif %}
+        {% if perms.foo.can_drive %}
+            <p>You can drive!</p>
+        {% endif %}
+    {% else %}
+        <p>You don't have permission to do anything in the foo app.</p>
+    {% endif %}
+
+Groups
+======
+
+Groups are a generic way of categorizing users so you can apply permissions, or
+some other label, to those users. A user can belong to any number of groups.
+
+A user in a group automatically has the permissions granted to that group. For
+example, if the group ``Site editors`` has the permission
+``can_edit_home_page``, any user in that group will have that permission.
+
+Beyond permissions, groups are a convenient way to categorize users to give
+them some label, or extended functionality. For example, you could create a
+group ``'Special users'``, and you could write code that could, say, give them
+access to a members-only portion of your site, or send them members-only e-mail
+messages.
+
+Messages
+========
+
+The message system is a lightweight way to queue messages for given users.
+
+A message is associated with a :class:`~django.contrib.auth.models.User`.
+There's no concept of expiration or timestamps.
+
+Messages are used by the Django admin after successful actions. For example,
+``"The poll Foo was created successfully."`` is a message.
+
+The API is simple:
+
+.. method:: models.User.message_set.create(message)
+
+    To create a new message, use
+    ``user_obj.message_set.create(message='message_text')``.
+    
+    To retrieve/delete messages, use
+    :meth:`user_obj.get_and_delete_messages() <django.contrib.auth.models.User.get_and_delete_messages>`,
+    which returns a list of ``Message`` objects in the user's queue (if any)
+    and deletes the messages from the queue.
+
+In this example view, the system saves a message for the user after creating
+a playlist::
+
+    def create_playlist(request, songs):
+        # Create the playlist with the given songs.
+        # ...
+        request.user.message_set.create(message="Your playlist was added successfully.")
+        return render_to_response("playlists/create.html",
+            context_instance=RequestContext(request))
+
+When you use :class:`~django.template.context.RequestContext`, the currently
+logged-in user and his/her messages are made available in the
+:ref:`template context <ref-templates-api>` as the template variable
+``{{ messages }}``. Here's an example of template code that displays messages::
+
+    {% if messages %}
+    <ul>
+        {% for message in messages %}
+        <li>{{ message }}</li>
+        {% endfor %}
+    </ul>
+    {% endif %}
+
+Note that :class:`~django.template.context.RequestContext` calls
+:meth:`~django.contrib.auth.models.User.get_and_delete_messages` behind the
+scenes, so any messages will be deleted even if you don't display them.
+
+Finally, note that this messages framework only works with users in the user
+database. To send messages to anonymous users, use the
+:ref:`session framework <topics-http-sessions>`.
+
+.. _authentication-backends:
+
+Other authentication sources
+============================
+
+The authentication that comes with Django is good enough for most common cases,
+but you may have the need to hook into another authentication source -- that
+is, another source of usernames and passwords or authentication methods.
+
+For example, your company may already have an LDAP setup that stores a username
+and password for every employee. It'd be a hassle for both the network
+administrator and the users themselves if users had separate accounts in LDAP
+and the Django-based applications.
+
+So, to handle situations like this, the Django authentication system lets you
+plug in another authentication sources. You can override Django's default
+database-based scheme, or you can use the default system in tandem with other
+systems.
+
+Specifying authentication backends
+----------------------------------
+
+Behind the scenes, Django maintains a list of "authentication backends" that it
+checks for authentication. When somebody calls
+:func:`django.contrib.auth.authenticate()` -- as described in "How to log a
+user in" above -- Django tries authenticating across all of its authentication
+backends. If the first authentication method fails, Django tries the second
+one, and so on, until all backends have been attempted.
+
+The list of authentication backends to use is specified in the
+:setting:`AUTHENTICATION_BACKENDS` setting. This should be a tuple of Python
+path names that point to Python classes that know how to authenticate. These
+classes can be anywhere on your Python path.
+
+By default, :setting:`AUTHENTICATION_BACKENDS` is set to::
+
+    ('django.contrib.auth.backends.ModelBackend',)
+
+That's the basic authentication scheme that checks the Django users database.
+
+The order of :setting:`AUTHENTICATION_BACKENDS` matters, so if the same username
+and password is valid in multiple backends, Django will stop processing at the
+first positive match.
+
+Writing an authentication backend
+---------------------------------
+
+An authentication backend is a class that implements two methods:
+``get_user(user_id)`` and ``authenticate(**credentials)``.
+
+The ``get_user`` method takes a ``user_id`` -- which could be a username,
+database ID or whatever -- and returns a ``User`` object.
+
+The ``authenticate`` method takes credentials as keyword arguments. Most of
+the time, it'll just look like this::
+
+    class MyBackend:
+        def authenticate(self, username=None, password=None):
+            # Check the username/password and return a User.
+
+But it could also authenticate a token, like so::
+
+    class MyBackend:
+        def authenticate(self, token=None):
+            # Check the token and return a User.
+
+Either way, ``authenticate`` should check the credentials it gets, and it
+should return a ``User`` object that matches those credentials, if the
+credentials are valid. If they're not valid, it should return ``None``.
+
+The Django admin system is tightly coupled to the Django ``User`` object
+described at the beginning of this document. For now, the best way to deal with
+this is to create a Django ``User`` object for each user that exists for your
+backend (e.g., in your LDAP directory, your external SQL database, etc.) You
+can either write a script to do this in advance, or your ``authenticate``
+method can do it the first time a user logs in.
+
+Here's an example backend that authenticates against a username and password
+variable defined in your ``settings.py`` file and creates a Django ``User``
+object the first time a user authenticates::
+
+    from django.conf import settings
+    from django.contrib.auth.models import User, check_password
+
+    class SettingsBackend:
+        """
+        Authenticate against the settings ADMIN_LOGIN and ADMIN_PASSWORD.
+
+        Use the login name, and a hash of the password. For example:
+
+        ADMIN_LOGIN = 'admin'
+        ADMIN_PASSWORD = 'sha1$4e987$afbcf42e21bd417fb71db8c66b321e9fc33051de'
+        """
+        def authenticate(self, username=None, password=None):
+            login_valid = (settings.ADMIN_LOGIN == username)
+            pwd_valid = check_password(password, settings.ADMIN_PASSWORD)
+            if login_valid and pwd_valid:
+                try:
+                    user = User.objects.get(username=username)
+                except User.DoesNotExist:
+                    # Create a new user. Note that we can set password
+                    # to anything, because it won't be checked; the password
+                    # from settings.py will.
+                    user = User(username=username, password='get from settings.py')
+                    user.is_staff = True
+                    user.is_superuser = True
+                    user.save()
+                return user
+            return None
+
+        def get_user(self, user_id):
+            try:
+                return User.objects.get(pk=user_id)
+            except User.DoesNotExist:
+                return None
+
+Handling authorization in custom backends
+-----------------------------------------
+
+Custom auth backends can provide their own permissions.
+
+The user model will delegate permission lookup functions
+(:meth:`~django.contrib.auth.models.User.get_group_permissions()`,
+:meth:`~django.contrib.auth.models.User.get_all_permissions()`, 
+:meth:`~django.contrib.auth.models.User.has_perm()`, and
+:meth:`~django.contrib.auth.models.User.has_module_perms()`) to any
+authentication backend that implements these functions.
+
+The permissions given to the user will be the superset of all permissions
+returned by all backends. That is, Django grants a permission to a user that
+any one backend grants.
+
+The simple backend above could implement permissions for the magic admin
+fairly simply::
+
+    class SettingsBackend:
+
+        # ...
+
+        def has_perm(self, user_obj, perm):
+            if user_obj.username == settings.ADMIN_LOGIN:
+                return True
+            else:
+                return False
+
+This gives full permissions to the user granted access in the above example.
+Notice that the backend auth functions all take the user object as an argument,
+and they also accept the same arguments given to the associated
+:class:`django.contrib.auth.models.User` functions.
+
+A full authorization implementation can be found in
+`django/contrib/auth/backends.py`_, which is the default backend and queries
+the ``auth_permission`` table most of the time.
+
+.. _django/contrib/auth/backends.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/backends.py
diff --git a/docs/cache.txt b/docs/topics/cache.txt
similarity index 98%
rename from docs/cache.txt
rename to docs/topics/cache.txt
index 1a7e63d720..f2eb17d930 100644
--- a/docs/cache.txt
+++ b/docs/topics/cache.txt
@@ -1,8 +1,10 @@
+.. _topics-cache:
+
 ========================
 Django's cache framework
 ========================
 
-A fundamental tradeoff in dynamic Web sites is, well, they're dynamic. Each
+A fundamental trade-off in dynamic Web sites is, well, they're dynamic. Each
 time a user requests a page, the Web server makes all sorts of calculations --
 from database queries to template rendering to business logic -- to create the
 page that your site's visitor sees. This is a lot more expensive, from a
@@ -158,6 +160,11 @@ cache is multi-process and thread-safe. To use it, set ``CACHE_BACKEND`` to
 ``"locmem:///"``. For example::
 
     CACHE_BACKEND = 'locmem:///'
+    
+Note that each process will have its own private cache instance, which means no
+cross-process caching is possible. This obviously also means the local memory
+cache isn't particularly memory-efficient, so it's probably not a good choice
+for production environments.
 
 Dummy caching (for development)
 -------------------------------
@@ -179,7 +186,7 @@ Using a custom cache backend
 **New in Django development version**
 
 While Django includes support for a number of cache backends out-of-the-box,
-sometimes you will want to use a customised verison or your own backend.  To
+sometimes you will want to use a customised version or your own backend.  To
 use an external cache backend with Django, use a Python import path as the
 scheme portion (the part before the initial colon) of the ``CACHE_BACKEND``
 URI, like so::
@@ -194,6 +201,7 @@ Note: Without a really compelling reason, like a host that doesn't support the
 them, you should stick to the cache backends included with Django. They've
 been really well-tested and are quite easy to use.
 
+
 CACHE_BACKEND arguments
 -----------------------
 
@@ -280,9 +288,7 @@ Additionally, the cache middleware automatically sets a few headers in each
 * Sets the ``Cache-Control`` header to give a max age for the page -- again,
   from the ``CACHE_MIDDLEWARE_SECONDS`` setting.
 
-See the `middleware documentation`_ for more on middleware.
-
-.. _`middleware documentation`: ../middleware/
+See :ref:`topics-http-middleware` for more on middleware.
 
 **New in Django development version**
 
diff --git a/docs/topics/db/index.txt b/docs/topics/db/index.txt
new file mode 100644
index 0000000000..83e84d7196
--- /dev/null
+++ b/docs/topics/db/index.txt
@@ -0,0 +1,17 @@
+.. _topics-db-index:
+
+Models and databases
+====================
+
+A model is the single, definitive source of data about your data. It contains
+the essential fields and behaviors of the data you're storing. Generally, each
+model maps to a single database table.
+
+.. toctree::
+   :maxdepth: 1
+
+   models
+   queries
+   managers
+   sql
+   transactions
diff --git a/docs/topics/db/managers.txt b/docs/topics/db/managers.txt
new file mode 100644
index 0000000000..dabe0d6a0b
--- /dev/null
+++ b/docs/topics/db/managers.txt
@@ -0,0 +1,191 @@
+.. _topics-db-managers:
+
+========
+Managers
+========
+
+.. currentmodule:: django.db.models
+
+.. class:: Manager()
+
+A ``Manager`` is the interface through which database query operations are
+provided to Django models. At least one ``Manager`` exists for every model in
+a Django application.
+
+The way ``Manager`` classes work is documented :ref:`topics-db-queries`; this
+document specifically touches on model options that customize ``Manager``
+behavior.
+
+Manager names
+=============
+
+By default, Django adds a ``Manager`` with the name ``objects`` to every Django
+model class. However, if you want to use ``objects`` as a field name, or if you
+want to use a name other than ``objects`` for the ``Manager``, you can rename
+it on a per-model basis. To rename the ``Manager`` for a given class, define a
+class attribute of type ``models.Manager()`` on that model. For example::
+
+    from django.db import models
+
+    class Person(models.Model):
+        #...
+        people = models.Manager()
+
+Using this example model, ``Person.objects`` will generate an
+``AttributeError`` exception, but ``Person.people.all()`` will provide a list
+of all ``Person`` objects.
+
+.. _custom-managers:
+
+Custom Managers
+===============
+
+You can use a custom ``Manager`` in a particular model by extending the base
+``Manager`` class and instantiating your custom ``Manager`` in your model.
+
+There are two reasons you might want to customize a ``Manager``: to add extra
+``Manager`` methods, and/or to modify the initial ``QuerySet`` the ``Manager``
+returns.
+
+Adding extra Manager methods
+----------------------------
+
+Adding extra ``Manager`` methods is the preferred way to add "table-level"
+functionality to your models. (For "row-level" functionality -- i.e., functions
+that act on a single instance of a model object -- use :ref:`Model methods
+<model-methods>`, not custom ``Manager`` methods.)
+
+A custom ``Manager`` method can return anything you want. It doesn't have to
+return a ``QuerySet``.
+
+For example, this custom ``Manager`` offers a method ``with_counts()``, which
+returns a list of all ``OpinionPoll`` objects, each with an extra
+``num_responses`` attribute that is the result of an aggregate query::
+
+    class PollManager(models.Manager):
+        def with_counts(self):
+            from django.db import connection
+            cursor = connection.cursor()
+            cursor.execute("""
+                SELECT p.id, p.question, p.poll_date, COUNT(*)
+                FROM polls_opinionpoll p, polls_response r
+                WHERE p.id = r.poll_id
+                GROUP BY 1, 2, 3
+                ORDER BY 3 DESC""")
+            result_list = []
+            for row in cursor.fetchall():
+                p = self.model(id=row[0], question=row[1], poll_date=row[2])
+                p.num_responses = row[3]
+                result_list.append(p)
+            return result_list
+
+    class OpinionPoll(models.Model):
+        question = models.CharField(max_length=200)
+        poll_date = models.DateField()
+        objects = PollManager()
+
+    class Response(models.Model):
+        poll = models.ForeignKey(Poll)
+        person_name = models.CharField(max_length=50)
+        response = models.TextField()
+
+With this example, you'd use ``OpinionPoll.objects.with_counts()`` to return
+that list of ``OpinionPoll`` objects with ``num_responses`` attributes.
+
+Another thing to note about this example is that ``Manager`` methods can
+access ``self.model`` to get the model class to which they're attached.
+
+Modifying initial Manager QuerySets
+-----------------------------------
+
+A ``Manager``'s base ``QuerySet`` returns all objects in the system. For
+example, using this model::
+
+    class Book(models.Model):
+        title = models.CharField(max_length=100)
+        author = models.CharField(max_length=50)
+
+...the statement ``Book.objects.all()`` will return all books in the database.
+
+You can override a ``Manager``\'s base ``QuerySet`` by overriding the
+``Manager.get_query_set()`` method. ``get_query_set()`` should return a
+``QuerySet`` with the properties you require.
+
+For example, the following model has *two* ``Manager``\s -- one that returns
+all objects, and one that returns only the books by Roald Dahl::
+
+    # First, define the Manager subclass.
+    class DahlBookManager(models.Manager):
+        def get_query_set(self):
+            return super(DahlBookManager, self).get_query_set().filter(author='Roald Dahl')
+
+    # Then hook it into the Book model explicitly.
+    class Book(models.Model):
+        title = models.CharField(max_length=100)
+        author = models.CharField(max_length=50)
+
+        objects = models.Manager() # The default manager.
+        dahl_objects = DahlBookManager() # The Dahl-specific manager.
+
+With this sample model, ``Book.objects.all()`` will return all books in the
+database, but ``Book.dahl_objects.all()`` will only return the ones written by
+Roald Dahl.
+
+Of course, because ``get_query_set()`` returns a ``QuerySet`` object, you can
+use ``filter()``, ``exclude()`` and all the other ``QuerySet`` methods on it.
+So these statements are all legal::
+
+    Book.dahl_objects.all()
+    Book.dahl_objects.filter(title='Matilda')
+    Book.dahl_objects.count()
+
+This example also pointed out another interesting technique: using multiple
+managers on the same model. You can attach as many ``Manager()`` instances to
+a model as you'd like. This is an easy way to define common "filters" for your
+models.
+
+For example::
+
+    class MaleManager(models.Manager):
+        def get_query_set(self):
+            return super(MaleManager, self).get_query_set().filter(sex='M')
+
+    class FemaleManager(models.Manager):
+        def get_query_set(self):
+            return super(FemaleManager, self).get_query_set().filter(sex='F')
+
+    class Person(models.Model):
+        first_name = models.CharField(max_length=50)
+        last_name = models.CharField(max_length=50)
+        sex = models.CharField(max_length=1, choices=(('M', 'Male'), ('F', 'Female')))
+        people = models.Manager()
+        men = MaleManager()
+        women = FemaleManager()
+
+This example allows you to request ``Person.men.all()``, ``Person.women.all()``,
+and ``Person.people.all()``, yielding predictable results.
+
+If you use custom ``Manager`` objects, take note that the first
+``Manager`` Django encounters (in the order in which they're defined
+in the model) has a special status. Django interprets this first
+``Manager`` defined in a class as the "default" ``Manager``, and
+several parts of Django (though not the admin application) will use
+that ``Manager`` exclusively for that model. As a result, it's often a
+good idea to be careful in your choice of default manager, in order to
+avoid a situation where overriding of ``get_query_set()`` results in
+an inability to retrieve objects you'd like to work with.
+
+Using managers for related object access
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+By default, Django uses a "bare" (i.e. default) manager when accessing related
+objects (i.e. ``choice.poll``). If this default isn't appropriate for your
+default manager, you can force Django to use a custom manager for related object
+attributes by giving it a ``use_for_related_fields`` property::
+
+    class MyManager(models.Manager)::
+        use_for_related_fields = True
+        ...
+        
+
+        ...
diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt
new file mode 100644
index 0000000000..17874364ca
--- /dev/null
+++ b/docs/topics/db/models.txt
@@ -0,0 +1,746 @@
+.. _topics-db-models:
+
+==============
+Writing models
+==============
+
+.. module:: django.db.models
+
+A model is the single, definitive source of data about your data. It contains
+the essential fields and behaviors of the data you're storing. Generally, each
+model maps to a single database table.
+
+The basics:
+
+    * Each model is a Python class that subclasses
+      :class:`django.db.models.Model`.
+    
+    * Each attribute of the model represents a database field.
+
+    * With all of this, Django gives you an automatically-generated
+      database-access API; see :ref:`topics-db-queries`.
+
+.. seealso::
+
+    A companion to this document is the `official repository of model
+    examples`_. (In the Django source distribution, these examples are in the
+    ``tests/modeltests`` directory.)
+
+    .. _official repository of model examples: http://www.djangoproject.com/documentation/models/
+
+Quick example
+=============
+
+This example model defines a ``Person``, which has a ``first_name`` and
+``last_name``::
+
+    from django.db import models
+
+    class Person(models.Model):
+        first_name = models.CharField(max_length=30)
+        last_name = models.CharField(max_length=30)
+
+``first_name`` and ``last_name`` are :term:`fields <field>` of the model. Each
+field is specified as a class attribute, and each attribute maps to a database
+column.
+
+The above ``Person`` model would create a database table like this:
+
+.. code-block:: sql
+
+    CREATE TABLE myapp_person (
+        "id" serial NOT NULL PRIMARY KEY,
+        "first_name" varchar(30) NOT NULL,
+        "last_name" varchar(30) NOT NULL
+    );
+
+Some technical notes:
+
+    * The name of the table, ``myapp_person``, is automatically derived from
+      some model metadata but can be overridden. See :ref:`table-names` for more
+      details..
+      
+    * An ``id`` field is added automatically, but this behavior can be
+      overridden. See :ref:`automatic-primary-key-fields`.
+            
+    * The ``CREATE TABLE`` SQL in this example is formatted using PostgreSQL
+      syntax, but it's worth noting Django uses SQL tailored to the database
+      backend specified in your :ref:`settings file <topics-settings>`.
+
+Using models
+============
+
+Once you have defined your models, you need to tell Django you're going to *use*
+those models. Do this by editing your settings file and changing the
+:setting:`INSTALLED_APPS` setting to add the name of the module that contains
+your ``models.py``.
+
+For example, if the models for your application live in the module
+``mysite.myapp.models`` (the package structure that is created for an
+application by the :djadmin:`manage.py startapp <startapp>` script),
+:setting:`INSTALLED_APPS` should read, in part::
+
+    INSTALLED_APPS = (
+        #...
+        'mysite.myapp',
+        #...
+    )
+
+When you add new apps to :setting:`INSTALLED_APPS`, be sure to run
+:djadmin:`manage.py syncdb <syncdb>`.
+
+Fields
+======
+
+The most important part of a model -- and the only required part of a model --
+is the list of database fields it defines. Fields are specified by class
+attributes.
+
+Example::
+
+    class Musician(models.Model):
+        first_name = models.CharField(max_length=50)
+        last_name = models.CharField(max_length=50)
+        instrument = models.CharField(max_length=100)
+
+    class Album(models.Model):
+        artist = models.ForeignKey(Musician)
+        name = models.CharField(max_length=100)
+        release_date = models.DateField()
+        num_stars = models.IntegerField()
+
+Field types
+-----------
+
+Each field in your model should be an instance of the appropriate
+:class:`~django.db.models.Field` class. Django uses the field class types to
+determine a few things:
+
+    * The database column type (e.g. ``INTEGER``, ``VARCHAR``).
+
+    * The widget to use in Django's admin interface, if you care to use it
+      (e.g. ``<input type="text">``, ``<select>``).
+
+    * The minimal validation requirements, used in Django's admin and in
+      automatically-generated forms.
+
+Django ships with dozens of built-in field types; you can find the complete list
+in the :ref:`model field reference <model-field-types>`. You can easily write
+your own fields if Django's built-in ones don't do the trick; see
+:ref:`howto-custom-model-fields`.
+
+Field options
+-------------
+
+Each field takes a certain set of field-specific arguments (documented in the
+:ref:`model field reference <model-field-types>`). For example,
+:class:`~django.db.models.CharField` (and its subclasses) require a
+:attr:`~django.db.models.CharField.max_length` argument which specifies the size
+of the ``VARCHAR`` database field used to store the data.
+
+There's also a set of common arguments available to all field types. All are
+optional. They're fully explained in the :ref:`reference
+<common-model-field-options>`, but here's a quick summary of the most often-used
+ones:
+
+    :attr:`~Field.null`
+        If ``True``, Django will store empty values as ``NULL`` in the database.
+        Default is ``False``.
+
+    :attr:`~ieldblank`
+
+        If ``True``, the field is allowed to be blank. Default is ``False``.
+    
+        Note that this is different than :attr:`~Field.null`.
+        :attr:`~Field.null` is purely database-related, whereas
+        :attr:`~Field.blank` is validation-related. If a field has
+        :attr:`blank=True <Field.blank>`, validation on Django's admin site will
+        allow entry of an empty value. If a field has :attr:`blank=False
+        <Field.blank>`, the field will be required.
+
+    :attr:`~Field.choices`
+
+        An iterable (e.g., a list or tuple) of 2-tuples to use as choices for
+        this field. If this is given, Django's admin will use a select box
+        instead of the standard text field and will limit choices to the choices
+        given.
+
+        A choices list looks like this::
+
+            YEAR_IN_SCHOOL_CHOICES = (
+                ('FR', 'Freshman'),
+                ('SO', 'Sophomore'),
+                ('JR', 'Junior'),
+                ('SR', 'Senior'),
+                ('GR', 'Graduate'),
+            )
+            
+    :attr:`~Field.default`
+
+        The default value for the field. This can be a value or a callable
+        object. If callable it will be called every time a new object is
+        created.
+    
+    :attr:`~Field.help_text`
+
+        Extra "help" text to be displayed under the field on the object's admin
+        form. It's useful for documentation even if your object doesn't have an
+        admin form.
+
+    :attr:`~Field.primary_key``
+
+        If ``True``, this field is the primary key for the model.
+
+        If you don't specify :attr:`primary_key=True <Field.primary_key>` for
+        any fields in your model, Django will automatically add an
+        :class:`IntegerField` to hold the primary key, so you don't need to set
+        :attr:`primary_key=True <Field.primary_key>` on any of your fields
+        unless you want to override the default primary-key behavior. For more,
+        see :ref:`automatic-primary-key-fields`.
+
+    :attr:`~Field.unique`
+
+        If ``True``, this field must be unique throughout the table.
+
+Again, these are just short descriptions of the most common field options. Full
+details can be found in the :ref:`common model field option reference
+<common-model-field-options>`.
+
+.. _automatic-primary-key-fields:
+
+Automatic primary key fields
+----------------------------
+
+By default, Django gives each model the following field::
+
+    id = models.AutoField(primary_key=True)
+
+This is an auto-incrementing primary key.
+
+If you'd like to specify a custom primary key, just specify
+:attr:`primary_key=True <Field.primary_key>` on one of your fields. If Django
+sees you've explicitly set :attr:`Field.primary_key`, it won't add the automatic
+``id`` column.
+
+Each model requires exactly one field to have :attr:`primary_key=True
+<Field.primary_key>`.
+
+Verbose field names
+-------------------
+
+Each field type, except for :class:`~django.db.models.ForeignKey`,
+:class:`~django.db.models.ManyToManyField` and
+:class:`~django.db.models.OneToOneField`, takes an optional first positional
+argument -- a verbose name. If the verbose name isn't given, Django will
+automatically create it using the field's attribute name, converting underscores
+to spaces.
+
+In this example, the verbose name is ``"Person's first name"``::
+
+    first_name = models.CharField("Person's first name", max_length=30)
+
+In this example, the verbose name is ``"first name"``::
+
+    first_name = models.CharField(max_length=30)
+
+:class:`~django.db.models.ForeignKey`,
+:class:`~django.db.models.ManyToManyField` and
+:class:`~django.db.models.OneToOneField` require the first argument to be a
+model class, so use the :attr:`~Field.verbose_name` keyword argument::
+
+    poll = models.ForeignKey(Poll, verbose_name="the related poll")
+    sites = models.ManyToManyField(Site, verbose_name="list of sites")
+    place = models.OneToOneField(Place, verbose_name="related place")
+
+The convention is not to capitalize the first letter of the
+:attr:`~Field.verbose_name`. Django will automatically capitalize the first
+letter where it needs to.
+
+Relationships
+-------------
+
+Clearly, the power of relational databases lies in relating tables to each
+other. Django offers ways to define the three most common types of database
+relationships: Many-to-one, many-to-many and one-to-one.
+
+Many-to-one relationships
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To define a many-to-one relationship, use :class:`~django.db.models.ForeignKey`.
+You use it just like any other :class:`~django.db.models.Field` type: by
+including it as a class attribute of your model.
+
+:class:`~django.db.models.ForeignKey` requires a positional argument: the class
+to which the model is related.
+
+For example, if a ``Car`` model has a ``Manufacturer`` -- that is, a
+``Manufacturer`` makes multiple cars but each ``Car`` only has one
+``Manufacturer`` -- use the following definitions::
+
+    class Manufacturer(models.Model):
+        # ...
+
+    class Car(models.Model):
+        manufacturer = models.ForeignKey(Manufacturer)
+        # ...
+        
+You can also create :ref:`recursive relationships <recursive-relationships>` (an
+object with a many-to-one relationship to itself) and :ref:`relationsips to
+models not yet defined <lazy-relationships>`; see :ref:`the model field
+reference <ref-foreignkey>` for details.`
+
+It's suggested, but not required, that the name of a
+:class:`~django.db.models.ForeignKey` field (``manufacturer`` in the example
+above) be the name of the model, lowercase. You can, of course, call the field
+whatever you want. For example::
+
+    class Car(models.Model):
+        company_that_makes_it = models.ForeignKey(Manufacturer)
+        # ...
+
+.. seealso::
+
+    See the `Many-to-one relationship model example`_ for a full example.
+
+.. _Many-to-one relationship model example: http://www.djangoproject.com/models/many_to_one/
+
+:class:`~django.db.models.ForeignKey` fields also accept a number of extra
+arguments which are explained in :ref:`the model field reference
+<foreign-key-arguments>`. These options help define how the relationship should
+work; all are optional.
+
+Many-to-many relationships
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To define a many-to-many relationship, use
+:class:`~django.db.models.ManyToManyField`. You use it just like any other
+:class:`~django.db.models.Field` type: by including it as a class attribute of
+your model.
+
+:class:`~django.db.models.ManyToManyField` requires a positional argument: the
+class to which the model is related.
+
+For example, if a ``Pizza`` has multiple ``Topping`` objects -- that is, a
+``Topping`` can be on multiple pizzas and each ``Pizza`` has multiple toppings
+-- here's how you'd represent that::
+
+    class Topping(models.Model):
+        # ...
+
+    class Pizza(models.Model):
+        # ...
+        toppings = models.ManyToManyField(Topping)
+
+As with :class:`~django.db.models.ForeignKey`, you can also create
+:ref:`recursive relationships <recursive-relationships>` (an object with a
+many-to-one relationship to itself) and :ref:`relationships to models not yet
+defined <lazy-relationships>`; see :ref:`the model field reference
+<ref-manytomany>` for details.`
+
+It's suggested, but not required, that the name of a
+:class:`~django.db.models.ManyToManyField` (``toppings`` in the example above)
+be a plural describing the set of related model objects.
+
+It doesn't matter which model gets the
+:class:`~django.db.models.ManyToManyField`, but you only need it in one of the
+models -- not in both.
+
+Generally, :class:`~django.db.models.ManyToManyField` instances should go in the
+object that's going to be edited in the admin interface, if you're using
+Django's admin. In the above example, ``toppings`` is in ``Pizza`` (rather than
+``Topping`` having a ``pizzas`` :class:`~django.db.models.ManyToManyField` )
+because it's more natural to think about a ``Pizza`` having toppings than a
+topping being on multiple pizzas. The way it's set up above, the ``Pizza`` admin
+form would let users select the toppings.
+
+.. seealso:: 
+
+    See the `Many-to-many relationship model example`_ for a full example.
+
+.. _Many-to-many relationship model example: http://www.djangoproject.com/models/many_to_many/
+
+:class:`~django.db.models.ManyToManyField` fields also accept a number of extra
+arguments which are explained in :ref:`the model field reference
+<manytomany-arguments>`. These options help define how the relationship should
+work; all are optional.
+
+Extra fields on many-to-many relationships
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version** 
+
+When you're only dealing with simple many-to-many relationships such as
+mixing and matching pizzas and toppings, a standard ``ManyToManyField``
+is all you need. However, sometimes you may need to associate data with the
+relationship between two models. 
+
+For example, consider the case of an application tracking the musical groups
+which musicians belong to. There is a many-to-many relationship between a person
+and the groups of which they are a member, so you could use a ManyToManyField
+to represent this relationship. However, there is a lot of detail about the
+membership that you might want to collect, such as the date at which the person
+joined the group.
+
+For these situations, Django allows you to specify the model that will be used
+to govern the many-to-many relationship. You can then put extra fields on the
+intermediate model. The intermediate model is associated with the
+``ManyToManyField`` using the ``through`` argument to point to the model
+that will act as an intermediary. For our musician example, the code would look
+something like this::
+
+    class Person(models.Model):
+        name = models.CharField(max_length=128)
+
+        def __unicode__(self):
+            return self.name
+
+    class Group(models.Model):
+        name = models.CharField(max_length=128)
+        members = models.ManyToManyField(Person, through='Membership')
+
+        def __unicode__(self):
+            return self.name
+
+    class Membership(models.Model):
+        person = models.ForeignKey(Person)
+        group = models.ForeignKey(Group)
+        date_joined = models.DateField()
+        invite_reason = models.CharField(max_length=64)
+
+When you set up the intermediary model, you explicitly specify foreign 
+keys to the models that are involved in the ManyToMany relation. This
+explicit declaration defines how the two models are related.
+
+There are a few restrictions on the intermediate model:
+
+    * Your intermediate model must contain one - and *only* one - foreign key
+      on the target model (this would be ``Person`` in our example). If you
+      have more than one foreign key, a validation error will be raised.
+  
+    * Your intermediate model must contain one - and *only* one - foreign key 
+      on the source model (this would be ``Group`` in our example). If you
+      have more than one foreign key, a validation error will be raised.
+
+    * The only exception to this is a model which has a many-to-many
+      relationship to itself, through an intermediary model. In this
+      case, two foreign keys to the same model are permitted, but they
+      will be treated as the two (different) sides of the many-to-many
+      relation.
+    
+    * When defining a many-to-many relationship from a model to
+      itself, using an intermediary model, you *must* use
+      ``symmetrical=False`` (see the documentation for
+      ``ManyToManyField`` above).
+
+Now that you have set up your ``ManyToManyField`` to use your intermediary 
+model (Membership, in this case), you're ready to start creating some
+many-to-many relationships. You do this by creating instances of the
+intermediate model::
+    
+    >>> ringo = Person.objects.create(name="Ringo Starr")
+    >>> paul = Person.objects.create(name="Paul McCartney")
+    >>> beatles = Group.objects.create(name="The Beatles")
+    >>> m1 = Membership(person=ringo, group=beatles,
+    ...     date_joined=date(1962, 8, 16), 
+    ...     invite_reason= "Needed a new drummer.")
+    >>> m1.save()
+    >>> beatles.members.all()
+    [<Person: Ringo Starr>]
+    >>> ringo.group_set.all()
+    [<Group: The Beatles>]
+    >>> m2 = Membership.objects.create(person=paul, group=beatles,
+    ...     date_joined=date(1960, 8, 1), 
+    ...     invite_reason= "Wanted to form a band.")
+    >>> beatles.members.all()
+    [<Person: Ringo Starr>, <Person: Paul McCartney>]
+
+Unlike normal many-to-many fields, you *can't* use ``add``, ``create``,
+or assignment (i.e., ``beatles.members = [...]``) to create relationships::
+
+    # THIS WILL NOT WORK
+    >>> beatles.members.add(john)
+    # NEITHER WILL THIS
+    >>> beatles.members.create(name="George Harrison")
+    # AND NEITHER WILL THIS
+    >>> beatles.members = [john, paul, ringo, george]
+    
+Why? You can't just create a relationship between a Person and a Group - you
+need to specify all the detail for the relationship required by the
+Membership table. The simple ``add``, ``create`` and assignment calls
+don't provide a way to specify this extra detail. As a result, they are
+disabled for many-to-many relationships that use an intermediate model.
+The only way to create a many-to-many relationship with an intermediate table
+is to create instances of the intermediate model.
+
+The ``remove`` method is disabled for similar reasons. However, the
+``clear()`` method can be used to remove all many-to-many relationships
+for an instance::
+
+    # Beatles have broken up
+    >>> beatles.members.clear()
+
+Once you have established the many-to-many relationships by creating instances
+of your intermediate model, you can issue queries. Just as with normal 
+many-to-many relationships, you can query using the attributes of the 
+many-to-many-related model::
+
+    # Find all the groups with a member whose name starts with 'Paul'
+    >>> Groups.objects.filter(person__name__startswith='Paul')
+    [<Group: The Beatles>]
+
+As you are using an intermediate table, you can also query on the attributes 
+of the intermediate model::
+
+    # Find all the members of the Beatles that joined after 1 Jan 1961
+    >>> Person.objects.filter(
+    ...     group__name='The Beatles',
+    ...     membership__date_joined__gt=date(1961,1,1))
+    [<Person: Ringo Starr]
+    
+
+One-to-one relationships
+------------------------
+
+One-to-one relationships are very similar to many-to-one relationships. If you
+define a ``OneToOneField`` on your model, instances of that model will have
+access to the related object via a simple attribute of the model.
+
+For example::
+
+    class EntryDetail(models.Model):
+        entry = models.OneToOneField(Entry)
+        details = models.TextField()
+
+    ed = EntryDetail.objects.get(id=2)
+    ed.entry # Returns the related Entry object.
+
+The difference comes in "reverse" queries. The related model in a one-to-one
+relationship also has access to a ``Manager`` object, but that ``Manager``
+represents a single object, rather than a collection of objects::
+
+    e = Entry.objects.get(id=2)
+    e.entrydetail # returns the related EntryDetail object
+
+If no object has been assigned to this relationship, Django will raise
+a ``DoesNotExist`` exception.
+
+Instances can be assigned to the reverse relationship in the same way as
+you would assign the forward relationship::
+
+    e.entrydetail = ed
+
+Models across files
+~~~~~~~~~~~~~~~~~~~
+
+It's perfectly OK to relate a model to one from another app. To do this, just
+import the related model at the top of the model that holds your model. Then,
+just refer to the other model class wherever needed. For example::
+
+    from mysite.geography.models import ZipCode
+
+    class Restaurant(models.Model):
+        # ...
+        zip_code = models.ForeignKey(ZipCode)
+
+Field name restrictions
+-----------------------
+
+Django places only two restrictions on model field names:
+
+    1. A field name cannot be a Python reserved word, because that would result
+       in a Python syntax error. For example::
+
+           class Example(models.Model):
+               pass = models.IntegerField() # 'pass' is a reserved word!
+
+    2. A field name cannot contain more than one underscore in a row, due to
+       the way Django's query lookup syntax works. For example::
+
+           class Example(models.Model):
+               foo__bar = models.IntegerField() # 'foo__bar' has two underscores!
+
+These limitations can be worked around, though, because your field name doesn't
+necessarily have to match your database column name. See the
+:attr:`~Field.db_column` option.
+
+SQL reserved words, such as ``join``, ``where`` or ``select``, *are* allowed as
+model field names, because Django escapes all database table names and column
+names in every underlying SQL query. It uses the quoting syntax of your
+particular database engine.
+
+Custom field types
+------------------
+
+**New in Django development version**
+
+If one of the existing model fields cannot be used to fit your purposes, or if
+you wish to take advantage of some less common database column types, you can
+create your own field class. Full coverage of creating your own fields is
+provided in :ref:`howto-custom-model-fields`.
+
+.. _meta-options:
+
+Meta options
+============
+
+Give your model metadata by using an inner ``class Meta``, like so::
+
+    class Ox(models.Model):
+        horn_length = models.IntegerField()
+
+        class Meta:
+            ordering = ["horn_length"]
+            verbose_name_plural = "oxen"
+
+Model metadata is "anything that's not a field", such as ordering options
+(:attr:`~Options.ordering`), database table name (:attr:`~Options.db_table`), or
+human-readable singular and plural names (:attr:`~Options.verbose_name` and
+:attr:`~Options.verbose_name_plural`). None are required, and adding ``class
+Meta`` to a model is completely optional.
+
+A complete list of all possible ``Meta`` options can be found in the :ref:`model
+option reference <ref-models-options>`.
+
+.. _model-methods:
+
+Model methods
+=============
+
+Define custom methods on a model to add custom "row-level" functionality to your
+objects. Whereas :class:`~django.db.models.Manager` methods are intended to do
+"table-wide" things, model methods should act on a particular model instance.
+
+This is a valuable technique for keeping business logic in one place -- the
+model.
+
+For example, this model has a few custom methods::
+
+    class Person(models.Model):
+        first_name = models.CharField(max_length=50)
+        last_name = models.CharField(max_length=50)
+        birth_date = models.DateField()
+        address = models.CharField(max_length=100)
+        city = models.CharField(max_length=50)
+        state = models.USStateField() # Yes, this is America-centric...
+
+        def baby_boomer_status(self):
+            "Returns the person's baby-boomer status."
+            import datetime
+            if datetime.date(1945, 8, 1) <= self.birth_date <= datetime.date(1964, 12, 31):
+                return "Baby boomer"
+            if self.birth_date < datetime.date(1945, 8, 1):
+                return "Pre-boomer"
+            return "Post-boomer"
+
+        def is_midwestern(self):
+            "Returns True if this person is from the Midwest."
+            return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO')
+
+        def _get_full_name(self):
+            "Returns the person's full name."
+            return '%s %s' % (self.first_name, self.last_name)
+        full_name = property(_get_full_name)
+
+The last method in this example is a :term:`property`. `Read more about
+properties`_.
+
+.. _Read more about properties: http://www.python.org/download/releases/2.2/descrintro/#property
+
+The :ref:`model instance reference <ref-models-instances>` has a complete list
+of `methods automatically given to each model <model-instance-methods>`. You can
+override most of these -- see `overriding predefined model methods`_, below --
+but there are a couple that you'll almost always want to define:
+
+    :meth:`~Model.__unicode__`
+        A Python "magic method" that returns a unicode "representation" of any
+        object. This is what Python and Django will use whenever a model
+        instance needs to be coerced and displayed as a plain string. Most
+        notably, this happens when you display an object in an interactive
+        console or in the admin.
+        
+        You'll always want to define this method; the default isn't very helpful
+        at all.
+        
+    :meth:`~Model.get_absolute_url`
+        This tells Django how to calculate the URL for an object. Django uses
+        this in its admin interface, and any time it needs to figure out a URL
+        for an object.
+        
+        Any object that has a URL that uniquely identifies it should define this
+        method.
+
+Overriding predefined model methods
+-----------------------------------
+
+There's another set of :ref:`model methods <model-instance-methods>` that
+encapsulate a bunch of database behavior that you'll want to customize. In
+particular you'll often want to change the way :meth:`~Model.save` and
+:meth:`~Model.delete` work.
+
+You're free to override these methods (and any other model method) to alter
+behavior.
+
+A classic use-case for overriding the built-in methods is if you want something
+to happen whenever you save an object. For example::
+
+    class Blog(models.Model):
+        name = models.CharField(max_length=100)
+        tagline = models.TextField()
+
+        def save(self):
+            do_something()
+            super(Blog, self).save() # Call the "real" save() method.
+            do_something_else()
+
+You can also prevent saving::
+
+    class Blog(models.Model):
+        name = models.CharField(max_length=100)
+        tagline = models.TextField()
+
+        def save(self):
+            if self.name == "Yoko Ono's blog":
+                return # Yoko shall never have her own blog!
+            else:
+                super(Blog, self).save() # Call the "real" save() method.
+
+It's important to remember to call the superclass method -- that's that
+``super(Blog, self).save()`` business -- to ensure that the object still gets
+saved into the database. If you forget to call the superclass method, the
+default behavior won't happen and the database won't get touched.
+
+Executing custom SQL
+--------------------
+
+Another common pattern is writing custom SQL statements in model methods and
+module-level methods. The object :class:`django.db.connection
+<django.db.backends.DatabaseWrapper>` represents the current database
+connection. To use it, call :meth:`connection.cursor()
+<django.db.backends.DatabaseWrapper.cursor>` to get a cursor object. Then, call
+``cursor.execute(sql, [params])`` to execute the SQL and
+:meth:`cursor.fetchone() <django.db.backends.CursorWrapper.fetchone>` or
+:meth:`cursor.fetchall() <django.db.backends.CursorWrapper.fetchall>` to return
+the resulting rows. For example::
+
+    def my_custom_sql(self):
+        from django.db import connection
+        cursor = connection.cursor()
+        cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
+        row = cursor.fetchone()
+        return row
+
+:class:`connection <django.db.backends.DatabaseWrapper>` and
+:class:`<django.db.backends.CursorWrapper>` mostly implement the standard Python
+DB-API -- see :pep:249 -- with the addition of Django's :ref:`transaction
+handling <topics-db-transactions>`. If you're not familiar with the Python
+DB-API, note that the SQL statement in :meth:`cursor.execute()
+<django.db.backends.CursorWrapper.execute>` uses placeholders, ``"%s"``, rather
+than adding parameters directly within the SQL. If you use this technique, the
+underlying database library will automatically add quotes and escaping to your
+parameter(s) as necessary. (Also note that Django expects the ``"%s"``
+placeholder, *not* the ``"?"`` placeholder, which is used by the SQLite Python
+bindings. This is for the sake of consistency and sanity.)
+
+A final note: If all you want to do is a custom ``WHERE`` clause, you can use
+the :meth:`~QuerySet.extra` lookup method, which lets you add custom SQL to a
+query.
\ No newline at end of file
diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt
new file mode 100644
index 0000000000..4fb12624ed
--- /dev/null
+++ b/docs/topics/db/queries.txt
@@ -0,0 +1,968 @@
+.. _topics-db-queries:
+
+==============
+Making queries
+==============
+
+.. currentmodule:: django.db.models
+
+Once you've created your :ref:`data models <topics-db-models>`, Django
+automatically gives you a database-abstraction API that lets you create,
+retrieve, update and delete objects. This document explains how to use this 
+API. Refer to the `data model reference <ref-models-index>` for full 
+details of all the various model lookup options.
+
+Throughout this guide (and in the reference), we'll refer to the following
+models, which comprise a weblog application:
+
+.. _queryset-model-example:
+
+.. code-block:: python
+
+    class Blog(models.Model):
+        name = models.CharField(max_length=100)
+        tagline = models.TextField()
+
+        def __unicode__(self):
+            return self.name
+
+    class Author(models.Model):
+        name = models.CharField(max_length=50)
+        email = models.EmailField()
+
+        def __unicode__(self):
+            return self.name
+
+    class Entry(models.Model):
+        blog = models.ForeignKey(Blog)
+        headline = models.CharField(max_length=255)
+        body_text = models.TextField()
+        pub_date = models.DateTimeField()
+        authors = models.ManyToManyField(Author)
+
+        def __unicode__(self):
+            return self.headline
+
+Creating objects
+================
+
+To represent database-table data in Python objects, Django uses an intuitive
+system: A model class represents a database table, and an instance of that
+class represents a particular record in the database table.
+
+To create an object, instantiate it using keyword arguments to the model class,
+then call ``save()`` to save it to the database.
+
+You import the model class from wherever it lives on the Python path, as you
+may expect. (We point this out here because previous Django versions required
+funky model importing.)
+
+Assuming models live in a file ``mysite/blog/models.py``, here's an example::
+
+    >>> from mysite.blog.models import Blog
+    >>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
+    >>> b.save()
+
+This performs an ``INSERT`` SQL statement behind the scenes. Django doesn't hit
+the database until you explicitly call ``save()``.
+
+The ``save()`` method has no return value.
+
+.. seealso::
+
+    ``save()`` takes a number of advanced options not described here.
+    See the documentation for ``save()`` for complete details.
+
+    To create an object and save it all in one step see the ```create()```
+    method.
+
+Saving changes to objects
+=========================
+
+To save changes to an object that's already in the database, use ``save()``.
+
+Given a ``Blog`` instance ``b5`` that has already been saved to the database,
+this example changes its name and updates its record in the database::
+
+    >> b5.name = 'New name'
+    >> b5.save()
+
+This performs an ``UPDATE`` SQL statement behind the scenes. Django doesn't hit
+the database until you explicitly call ``save()``.
+
+Saving ``ForeignKey`` and ``ManyToManyField`` fields
+----------------------------------------------------
+
+Updating ``ForeignKey`` fields works exactly the same way as saving a normal
+field; simply assign an object of the right type to the field in question:: 
+
+    >>> cheese_blog = Blog.objects.get(name="Cheddar Talk") 
+    >>> entry.blog = cheese_blog 
+    >>> entry.save() 
+
+Updating a ``ManyToManyField`` works a little differently; use the ``add()``
+method on the field to add a record to the relation::
+
+    >> joe = Author.objects.create(name="Joe")
+    >> entry.authors.add(joe)
+
+Django will complain if you try to assign or add an object of the wrong type.
+
+Retrieving objects
+==================
+
+To retrieve objects from your database, you construct a ``QuerySet`` via a
+``Manager`` on your model class.
+
+A ``QuerySet`` represents a collection of objects from your database. It can
+have zero, one or many *filters* -- criteria that narrow down the collection
+based on given parameters. In SQL terms, a ``QuerySet`` equates to a ``SELECT``
+statement, and a filter is a limiting clause such as ``WHERE`` or ``LIMIT``.
+
+You get a ``QuerySet`` by using your model's ``Manager``. Each model has at
+least one ``Manager``, and it's called ``objects`` by default. Access it
+directly via the model class, like so::
+
+    >>> Blog.objects
+    <django.db.models.manager.Manager object at ...>
+    >>> b = Blog(name='Foo', tagline='Bar')
+    >>> b.objects
+    Traceback:
+        ...
+    AttributeError: "Manager isn't accessible via Blog instances."
+
+.. note::
+
+    ``Managers`` are accessible only via model classes, rather than from model
+    instances, to enforce a separation between "table-level" operations and
+    "record-level" operations.
+
+The ``Manager`` is the main source of ``QuerySets`` for a model. It acts as a
+"root" ``QuerySet`` that describes all objects in the model's database table.
+For example, ``Blog.objects`` is the initial ``QuerySet`` that contains all
+``Blog`` objects in the database.
+
+Retrieving all objects
+----------------------
+
+The simplest way to retrieve objects from a table is to get all of them.
+To do this, use the ``all()`` method on a ``Manager``::
+
+    >>> all_entries = Entry.objects.all()
+
+The ``all()`` method returns a ``QuerySet`` of all the objects in the database.
+
+(If ``Entry.objects`` is a ``QuerySet``, why can't we just do ``Entry.objects``?
+That's because ``Entry.objects``, the root ``QuerySet``, is a special case
+that cannot be evaluated. The ``all()`` method returns a ``QuerySet`` that
+*can* be evaluated.)
+
+Retrieving specific objects with filters
+----------------------------------------
+
+The root ``QuerySet`` provided by the ``Manager`` describes all objects in the
+database table. Usually, though, you'll need to select only a subset of the
+complete set of objects.
+
+To create such a subset, you refine the initial ``QuerySet``, adding filter
+conditions. The two most common ways to refine a ``QuerySet`` are:
+
+    ``filter(**kwargs)``
+        Returns a new ``QuerySet`` containing objects that match the given
+        lookup parameters.
+
+    ``exclude(**kwargs)``
+        Returns a new ``QuerySet`` containing objects that do *not* match the
+        given lookup parameters.
+
+The lookup parameters (``**kwargs`` in the above function definitions) should
+be in the format described in `Field lookups`_ below.
+
+For example, to get a ``QuerySet`` of blog entries from the year 2006, use
+``filter()`` like so::
+
+    Entry.objects.filter(pub_date__year=2006)
+
+We don't have to add an ``all()`` -- ``Entry.objects.all().filter(...)``. That
+would still work, but you only need ``all()`` when you want all objects from the
+root ``QuerySet``.
+
+.. _chaining-filters:
+
+Chaining filters
+~~~~~~~~~~~~~~~~
+
+The result of refining a ``QuerySet`` is itself a ``QuerySet``, so it's
+possible to chain refinements together. For example::
+
+    >>> Entry.objects.filter(
+    ...     headline__startswith='What'
+    ... ).exclude(
+    ...     pub_date__gte=datetime.now()
+    ... ).filter(
+    ...     pub_date__gte=datetime(2005, 1, 1)
+    ... )
+
+This takes the initial ``QuerySet`` of all entries in the database, adds a
+filter, then an exclusion, then another filter. The final result is a
+``QuerySet`` containing all entries with a headline that starts with "What",
+that were published between January 1, 2005, and the current day.
+
+.. _filtered-querysets-are-unique:
+
+Filtered QuerySets are unique
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Each time you refine a ``QuerySet``, you get a brand-new ``QuerySet`` that is
+in no way bound to the previous ``QuerySet``. Each refinement creates a
+separate and distinct ``QuerySet`` that can be stored, used and reused.
+
+Example::
+
+    >> q1 = Entry.objects.filter(headline__startswith="What")
+    >> q2 = q1.exclude(pub_date__gte=datetime.now())
+    >> q3 = q1.filter(pub_date__gte=datetime.now())
+
+These three ``QuerySets`` are separate. The first is a base ``QuerySet``
+containing all entries that contain a headline starting with "What". The second
+is a subset of the first, with an additional criteria that excludes records
+whose ``pub_date`` is greater than now. The third is a subset of the first,
+with an additional criteria that selects only the records whose ``pub_date`` is
+greater than now. The initial ``QuerySet`` (``q1``) is unaffected by the
+refinement process.
+
+.. _querysets-are-lazy:
+
+QuerySets are lazy
+~~~~~~~~~~~~~~~~~~
+
+``QuerySets`` are lazy -- the act of creating a ``QuerySet`` doesn't involve any
+database activity. You can stack filters together all day long, and Django won't
+actually run the query until the ``QuerySet`` is *evaluated*. Take a look at
+this example::
+
+    >>> q = Entry.objects.filter(headline__startswith="What")
+    >>> q = q.filter(pub_date__lte=datetime.now())
+    >>> q = q.exclude(body_text__icontains="food")
+    >>> print q
+    
+Though this looks like three database hits, in fact it hits the database only
+once, at the last line (``print q``). In general, the results of a ``QuerySet``
+aren't fetched from the database until you "ask" for them. When you do, the
+``QuerySet`` is *evaluated* by accessing the database. For more details on
+exactly when evaluation takes place, see :ref:`when-querysets-are-evaluated`.
+
+Other QuerySet methods
+~~~~~~~~~~~~~~~~~~~~~~
+
+Most of the time you'll use ``all()``, ``filter()`` and ``exclude()`` when you
+need to look up objects from the database. However, that's far from all there is; see the :ref:`QuerySet API Reference <queryset-api>` for a complete list
+of all the various ``QuerySet`` methods.
+
+.. _limiting-querysets:
+
+Limiting QuerySets
+------------------
+
+Use Python's array-slicing syntax to limit your ``QuerySet`` to a certain
+number of results. This is the equivalent of SQL's ``LIMIT`` and ``OFFSET``
+clauses.
+
+For example, this returns the first 5 objects (``LIMIT 5``)::
+
+    >>> Entry.objects.all()[:5]
+
+This returns the sixth through tenth objects (``OFFSET 5 LIMIT 5``)::
+
+    >>> Entry.objects.all()[5:10]
+
+Generally, slicing a ``QuerySet`` returns a new ``QuerySet`` -- it doesn't
+evaluate the query. An exception is if you use the "step" parameter of Python
+slice syntax. For example, this would actually execute the query in order to
+return a list of every *second* object of the first 10::
+
+    >>> Entry.objects.all()[:10:2]
+
+To retrieve a *single* object rather than a list
+(e.g. ``SELECT foo FROM bar LIMIT 1``), use a simple index instead of a
+slice. For example, this returns the first ``Entry`` in the database, after
+ordering entries alphabetically by headline::
+
+    >>> Entry.objects.order_by('headline')[0]
+
+This is roughly equivalent to::
+
+    >>> Entry.objects.order_by('headline')[0:1].get()
+
+Note, however, that the first of these will raise ``IndexError`` while the
+second will raise ``DoesNotExist`` if no objects match the given criteria. See
+``get()`` for more details.
+
+.. _field-lookups-intro:
+
+Field lookups
+-------------
+
+Field lookups are how you specify the meat of an SQL ``WHERE`` clause. They're
+specified as keyword arguments to the ``QuerySet`` methods ``filter()``,
+``exclude()`` and ``get()``.
+
+Basic lookups keyword arguments take the form ``field__lookuptype=value``.
+(That's a double-underscore). For example::
+
+    >>> Entry.objects.filter(pub_date__lte='2006-01-01')
+
+translates (roughly) into the following SQL::
+
+    SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01';
+
+.. admonition:: How this is possible
+
+   Python has the ability to define functions that accept arbitrary name-value
+   arguments whose names and values are evaluated at runtime. For more
+   information, see `Keyword Arguments`_ in the official Python tutorial.
+
+   .. _`Keyword Arguments`: http://docs.python.org/tut/node6.html#SECTION006720000000000000000
+
+If you pass an invalid keyword argument, a lookup function will raise
+``TypeError``.
+
+The database API supports about two dozen lookup types; a complete reference
+can be found in the :ref:`field lookup reference <field-lookups>`. To give you a taste of what's available, here's some of the more common lookups
+you'll probably use:
+
+    :lookup:`exact`
+        An "exact" match. For example::
+        
+            >>> Entry.objects.get(headline__exact="Man bites dog")
+
+        World generate SQL along these lines:
+        
+        .. code-block:: sql
+
+            SELECT ... WHERE headline = 'Man bits dog';
+            
+        If you don't provide a lookup type -- that is, if your keyword argument
+        doesn't contain a double underscore -- the lookup type is assumed to be
+        ``exact``.
+
+        For example, the following two statements are equivalent::
+
+            >>> Blog.objects.get(id__exact=14)  # Explicit form
+            >>> Blog.objects.get(id=14)         # __exact is implied
+
+        This is for convenience, because ``exact`` lookups are the common case.
+        
+    :lookup:`iexact`
+        A case-insensitive match. So, the query::
+        
+            >>> Blog.objects.get(name__iexact="beatles blog")
+            
+        Would match a ``Blog`` titled "Beatles Blog", "beatles blog", or even
+        "BeAtlES blOG".
+    
+    :lookup:`contains`
+        Case-sensitive containment test. For example::
+
+            Entry.objects.get(headline__contains='Lennon')
+
+        Roughly translates to this SQL:
+        
+        .. code-block:: sql
+
+            SELECT ... WHERE headline LIKE '%Lennon%';
+
+        Note this will match the headline ``'Today Lennon honored'`` but not
+        ``'today lennon honored'``.
+        
+        There's also a case-insensitive version, :lookup:`icontains`.
+        
+    :lookup:`startswith`, :lookup:`endswith`
+        Starts-with and ends-with search, respectively. There are also
+        case-insensitive versions called :lookup:`istartswith` and
+        :lookup:`iendswith`.
+    
+Again, this only scratches the surface. A complete reference can be found in the
+:ref:`field lookup reference <field-lookups>`.
+
+Lookups that span relationships
+-------------------------------
+
+Django offers a powerful and intuitive way to "follow" relationships in
+lookups, taking care of the SQL ``JOIN``\s for you automatically, behind the
+scenes. To span a relationship, just use the field name of related fields
+across models, separated by double underscores, until you get to the field you
+want.
+
+This example retrieves all ``Entry`` objects with a ``Blog`` whose ``name``
+is ``'Beatles Blog'``::
+
+    >>> Entry.objects.filter(blog__name__exact='Beatles Blog')
+
+This spanning can be as deep as you'd like.
+
+It works backwards, too. To refer to a "reverse" relationship, just use the
+lowercase name of the model.
+
+This example retrieves all ``Blog`` objects which have at least one ``Entry``
+whose ``headline`` contains ``'Lennon'``::
+
+    >>> Blog.objects.filter(entry__headline__contains='Lennon')
+
+If you are filtering across multiple relationships and one of the intermediate
+models doesn't have a value that meets the filter condition, Django will treat
+it as if there is an empty (all values are ``NULL``), but valid, object there.
+All this means is that no error will be raised. For example, in this filter::
+
+    Blog.objects.filter(entry__author__name='Lennon')
+
+(if there was a related ``Author`` model), if there was no ``author``
+associated with an entry, it would be treated as if there was also no ``name``
+attached, rather than raising an error because of the missing ``author``.
+Usually this is exactly what you want to have happen. The only case where it
+might be confusing is if you are using ``isnull``. Thus::
+
+    Blog.objects.filter(entry__author__name__isnull=True)
+
+will return ``Blog`` objects that have an empty ``name`` on the ``author`` and
+also those which have an empty ``author`` on the ``entry``. If you don't want
+those latter objects, you could write::
+
+    Blog.objetcs.filter(entry__author__isnull=False,
+            entry__author__name__isnull=True)
+
+Spanning multi-valued relationships
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version**
+
+When you are filtering an object based on a ``ManyToManyField`` or a reverse
+``ForeignKeyField``, there are two different sorts of filter you may be
+interested in. Consider the ``Blog``/``Entry`` relationship (``Blog`` to
+``Entry`` is a one-to-many relation). We might be interested in finding blogs
+that have an entry which has both *"Lennon"* in the headline and was published
+in 2008. Or we might want to find blogs that have an entry with *"Lennon"* in
+the headline as well as an entry that was published in 2008. Since there are
+multiple entries associated with a single ``Blog``, both of these queries are
+possible and make sense in some situations.
+
+The same type of situation arises with a ``ManyToManyField``. For example, if
+an ``Entry`` has a ``ManyToManyField`` called ``tags``, we might want to find
+entries linked to tags called *"music"* and *"bands"* or we might want an
+entry that contains a tag with a name of *"music"* and a status of *"public"*.
+
+To handle both of these situations, Django has a consistent way of processing
+``filter()`` and ``exclude()`` calls. Everything inside a single ``filter()``
+call is applied simultaneously to filter out items matching all those
+requirements. Successive ``filter()`` calls further restrict the set of
+objects, but for multi-valued relations, they apply to any object linked to
+the primary model, not necessarily those objects that were selected by an
+earlier ``filter()`` call.
+
+That may sound a bit confusing, so hopefully an example will clarify. To
+select all blogs that contains entries with *"Lennon"* in the headline and
+were published in 2008, we would write::
+
+    Blog.objects.filter(entry__headline__contains='Lennon',
+            entry__pub_date__year=2008)
+
+To select all blogs that contain an entry with *"Lennon"* in the headline
+**as well as** an entry that was published in 2008, we would write::
+
+    Blog.objects.filter(entry__headline__contains='Lennon').filter(
+            entry__pub_date__year=2008)
+
+In this second example, the first filter restricted the queryset to all those
+blogs linked to that particular type of entry. The second filter restricted
+the set of blogs *further* to those that are also linked to the second type of
+entry. The entries select by the second filter may or may not be the same as
+the entries in the first filter. We are filtering the ``Blog`` items with each
+filter statement, not the ``Entry`` items.
+
+All of this behavior also applies to ``exclude()``: all the conditions in a
+single ``exclude()`` statement apply to a single instance (if those conditions
+are talking about the same multi-valued relation). Conditions in subsequent
+``filter()`` or ``exclude()`` calls that refer to the same relation may end up
+filtering on different linked objects.
+
+The pk lookup shortcut
+----------------------
+
+For convenience, Django provides a ``pk`` lookup shortcut, which stands for
+"primary key".
+
+In the example ``Blog`` model, the primary key is the ``id`` field, so these
+three statements are equivalent::
+
+    >>> Blog.objects.get(id__exact=14) # Explicit form
+    >>> Blog.objects.get(id=14) # __exact is implied
+    >>> Blog.objects.get(pk=14) # pk implies id__exact
+
+The use of ``pk`` isn't limited to ``__exact`` queries -- any query term
+can be combined with ``pk`` to perform a query on the primary key of a model::
+
+    # Get blogs entries with id 1, 4 and 7
+    >>> Blog.objects.filter(pk__in=[1,4,7])
+    
+    # Get all blog entries with id > 14
+    >>> Blog.objects.filter(pk__gt=14)
+
+``pk`` lookups also work across joins. For example, these three statements are
+equivalent::
+
+    >>> Entry.objects.filter(blog__id__exact=3) # Explicit form
+    >>> Entry.objects.filter(blog__id=3)        # __exact is implied
+    >>> Entry.objects.filter(blog__pk=3)        # __pk implies __id__exact
+
+Escaping percent signs and underscores in LIKE statements
+---------------------------------------------------------
+
+The field lookups that equate to ``LIKE`` SQL statements (``iexact``,
+``contains``, ``icontains``, ``startswith``, ``istartswith``, ``endswith``
+and ``iendswith``) will automatically escape the two special characters used in
+``LIKE`` statements -- the percent sign and the underscore. (In a ``LIKE``
+statement, the percent sign signifies a multiple-character wildcard and the
+underscore signifies a single-character wildcard.)
+
+This means things should work intuitively, so the abstraction doesn't leak.
+For example, to retrieve all the entries that contain a percent sign, just use
+the percent sign as any other character::
+
+    >>> Entry.objects.filter(headline__contains='%')
+
+Django takes care of the quoting for you; the resulting SQL will look something
+like this:
+
+.. code-block:: sql
+
+    SELECT ... WHERE headline LIKE '%\%%';
+
+Same goes for underscores. Both percentage signs and underscores are handled
+for you transparently.
+
+.. _caching-and-querysets:
+
+Caching and QuerySets
+---------------------
+
+Each ``QuerySet`` contains a cache, to minimize database access. It's important
+to understand how it works, in order to write the most efficient code.
+
+In a newly created ``QuerySet``, the cache is empty. The first time a
+``QuerySet`` is evaluated -- and, hence, a database query happens -- Django
+saves the query results in the ``QuerySet``'s cache and returns the results
+that have been explicitly requested (e.g., the next element, if the
+``QuerySet`` is being iterated over). Subsequent evaluations of the
+``QuerySet`` reuse the cached results.
+
+Keep this caching behavior in mind, because it may bite you if you don't use
+your ``QuerySet``\s correctly. For example, the following will create two
+``QuerySet``\s, evaluate them, and throw them away::
+
+    >>> print [e.headline for e in Entry.objects.all()]
+    >>> print [e.pub_date for e in Entry.objects.all()]
+
+That means the same database query will be executed twice, effectively doubling
+your database load. Also, there's a possibility the two lists may not include
+the same database records, because an ``Entry`` may have been added or deleted
+in the split second between the two requests.
+
+To avoid this problem, simply save the ``QuerySet`` and reuse it::
+
+    >>> queryset = Poll.objects.all()
+    >>> print [p.headline for p in queryset] # Evaluate the query set.
+    >>> print [p.pub_date for p in queryset] # Re-use the cache from the evaluation.
+
+Complex lookups with Q objects
+==============================
+
+Keyword argument queries -- in ``filter()``, etc. -- are "AND"ed together. If
+you need to execute more complex queries (for example, queries with ``OR``
+statements), you can use ``Q`` objects.
+
+A ``Q`` object (``django.db.models.Q``) is an object used to encapsulate a
+collection of keyword arguments. These keyword arguments are specified as in
+"Field lookups" above.
+
+For example, this ``Q`` object encapsulates a single ``LIKE`` query::
+
+    Q(question__startswith='What')
+
+``Q`` objects can be combined using the ``&`` and ``|`` operators. When an
+operator is used on two ``Q`` objects, it yields a new ``Q`` object.
+
+For example, this statement yields a single ``Q`` object that represents the
+"OR" of two ``"question__startswith"`` queries::
+
+    Q(question__startswith='Who') | Q(question__startswith='What')
+
+This is equivalent to the following SQL ``WHERE`` clause::
+
+    WHERE question LIKE 'Who%' OR question LIKE 'What%'
+
+You can compose statements of arbitrary complexity by combining ``Q`` objects
+with the ``&`` and ``|`` operators. You can also use parenthetical grouping.
+
+Each lookup function that takes keyword-arguments (e.g. ``filter()``,
+``exclude()``, ``get()``) can also be passed one or more ``Q`` objects as
+positional (not-named) arguments. If you provide multiple ``Q`` object
+arguments to a lookup function, the arguments will be "AND"ed together. For
+example::
+
+    Poll.objects.get(
+        Q(question__startswith='Who'),
+        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
+    )
+
+... roughly translates into the SQL::
+
+    SELECT * from polls WHERE question LIKE 'Who%'
+        AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06')
+
+Lookup functions can mix the use of ``Q`` objects and keyword arguments. All
+arguments provided to a lookup function (be they keyword arguments or ``Q``
+objects) are "AND"ed together. However, if a ``Q`` object is provided, it must
+precede the definition of any keyword arguments. For example::
+
+    Poll.objects.get(
+        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)),
+        question__startswith='Who')
+
+... would be a valid query, equivalent to the previous example; but::
+
+    # INVALID QUERY
+    Poll.objects.get(
+        question__startswith='Who',
+        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))
+
+... would not be valid.
+
+.. seealso::
+
+    The `OR lookups examples`_ show some possible uses of ``Q``.
+
+    .. _OR lookups examples: http://www.djangoproject.com/models/or_lookups/
+
+Comparing objects
+=================
+
+To compare two model instances, just use the standard Python comparison operator,
+the double equals sign: ``==``. Behind the scenes, that compares the primary
+key values of two models.
+
+Using the ``Entry`` example above, the following two statements are equivalent::
+
+    >>> some_entry == other_entry
+    >>> some_entry.id == other_entry.id
+
+If a model's primary key isn't called ``id``, no problem. Comparisons will
+always use the primary key, whatever it's called. For example, if a model's
+primary key field is called ``name``, these two statements are equivalent::
+
+    >>> some_obj == other_obj
+    >>> some_obj.name == other_obj.name
+
+Deleting objects
+================
+
+The delete method, conveniently, is named ``delete()``. This method immediately
+deletes the object and has no return value. Example::
+
+    e.delete()
+
+You can also delete objects in bulk. Every ``QuerySet`` has a ``delete()``
+method, which deletes all members of that ``QuerySet``.
+
+For example, this deletes all ``Entry`` objects with a ``pub_date`` year of
+2005::
+
+    Entry.objects.filter(pub_date__year=2005).delete()
+
+Keep in mind that this will, whenever possible, be executed purely in
+SQL, and so the ``delete()`` methods of individual object instances
+will not necessarily be called during the process. If you've provided
+a custom ``delete()`` method on a model class and want to ensure that
+it is called, you will need to "manually" delete instances of that
+model (e.g., by iterating over a ``QuerySet`` and calling ``delete()``
+on each object individually) rather than using the bulk ``delete()``
+method of a ``QuerySet``.
+
+When Django deletes an object, it emulates the behavior of the SQL
+constraint ``ON DELETE CASCADE`` -- in other words, any objects which
+had foreign keys pointing at the object to be deleted will be deleted
+along with it. For example::
+
+    b = Blog.objects.get(pk=1)
+    # This will delete the Blog and all of its Entry objects.
+    b.delete()
+
+Note that ``delete()`` is the only ``QuerySet`` method that is not exposed on a
+``Manager`` itself. This is a safety mechanism to prevent you from accidentally
+requesting ``Entry.objects.delete()``, and deleting *all* the entries. If you
+*do* want to delete all the objects, then you have to explicitly request a
+complete query set::
+
+    Entry.objects.all().delete()
+
+Updating multiple objects at once
+=================================
+
+**New in Django development version**
+
+Sometimes you want to set a field to a particular value for all the objects in
+a ``QuerySet``. You can do this with the ``update()`` method. For example::
+
+    # Update all the headlines with pub_date in 2007.
+    Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')
+
+You can only set non-relation fields and ``ForeignKey`` fields using this
+method, and the value you set the field to must be a hard-coded Python value
+(i.e., you can't set a field to be equal to some other field at the moment).
+
+To update ``ForeignKey`` fields, set the new value to be the new model
+instance you want to point to. Example::
+
+    >>> b = Blog.objects.get(pk=1)
+    
+    # Change every Entry so that it belongs to this Blog.
+    >>> Entry.objects.all().update(blog=b)
+
+The ``update()`` method is applied instantly and doesn't return anything
+(similar to ``delete()``). The only restriction on the ``QuerySet`` that is
+updated is that it can only access one database table, the model's main
+table. So don't try to filter based on related fields or anything like that;
+it won't work.
+
+Be aware that the ``update()`` method is converted directly to an SQL
+statement. It is a bulk operation for direct updates. It doesn't run any
+``save()`` methods on your models, or emit the ``pre_save`` or ``post_save``
+signals (which are a consequence of calling ``save()``). If you want to save
+every item in a ``QuerySet`` and make sure that the ``save()`` method is
+called on each instance, you don't need any special function to handle that.
+Just loop over them and call ``save()``::
+
+    for item in my_queryset:
+        item.save()
+
+Related objects
+===============
+
+When you define a relationship in a model (i.e., a ``ForeignKey``,
+``OneToOneField``, or ``ManyToManyField``), instances of that model will have
+a convenient API to access the related object(s).
+
+Using the models at the top of this page, for example, an ``Entry`` object ``e``
+can get its associated ``Blog`` object by accessing the ``blog`` attribute:
+``e.blog``.
+
+(Behind the scenes, this functionality is implemented by Python descriptors_.
+This shouldn't really matter to you, but we point it out here for the curious.)
+
+Django also creates API accessors for the "other" side of the relationship --
+the link from the related model to the model that defines the relationship.
+For example, a ``Blog`` object ``b`` has access to a list of all related
+``Entry`` objects via the ``entry_set`` attribute: ``b.entry_set.all()``.
+
+All examples in this section use the sample ``Blog``, ``Author`` and ``Entry``
+models defined at the top of this page.
+
+.. _descriptors: http://users.rcn.com/python/download/Descriptor.htm
+
+One-to-many relationships
+-------------------------
+
+Forward
+~~~~~~~
+
+If a model has a ``ForeignKey``, instances of that model will have access to
+the related (foreign) object via a simple attribute of the model.
+
+Example::
+
+    >>> e = Entry.objects.get(id=2)
+    >>> e.blog # Returns the related Blog object.
+
+You can get and set via a foreign-key attribute. As you may expect, changes to
+the foreign key aren't saved to the database until you call ``save()``.
+Example::
+
+    >>> e = Entry.objects.get(id=2)
+    >>> e.blog = some_blog
+    >>> e.save()
+
+If a ``ForeignKey`` field has ``null=True`` set (i.e., it allows ``NULL``
+values), you can assign ``None`` to it. Example::
+
+    >>> e = Entry.objects.get(id=2)
+    >>> e.blog = None
+    >>> e.save() # "UPDATE blog_entry SET blog_id = NULL ...;"
+
+Forward access to one-to-many relationships is cached the first time the
+related object is accessed. Subsequent accesses to the foreign key on the same
+object instance are cached. Example::
+
+    >>> e = Entry.objects.get(id=2)
+    >>> print e.blog  # Hits the database to retrieve the associated Blog.
+    >>> print e.blog  # Doesn't hit the database; uses cached version.
+
+Note that the ``select_related()`` ``QuerySet`` method recursively prepopulates
+the cache of all one-to-many relationships ahead of time. Example::
+
+    >>> e = Entry.objects.select_related().get(id=2)
+    >>> print e.blog  # Doesn't hit the database; uses cached version.
+    >>> print e.blog  # Doesn't hit the database; uses cached version.
+
+.. _backwards-related-objects:
+
+Following relationships "backward"
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If a model has a ``ForeignKey``, instances of the foreign-key model will have
+access to a ``Manager`` that returns all instances of the first model. By
+default, this ``Manager`` is named ``FOO_set``, where ``FOO`` is the source
+model name, lowercased. This ``Manager`` returns ``QuerySets``, which can be
+filtered and manipulated as described in the "Retrieving objects" section
+above.
+
+Example::
+
+    >>> b = Blog.objects.get(id=1)
+    >>> b.entry_set.all() # Returns all Entry objects related to Blog.
+
+    # b.entry_set is a Manager that returns QuerySets.
+    >>> b.entry_set.filter(headline__contains='Lennon')
+    >>> b.entry_set.count()
+
+You can override the ``FOO_set`` name by setting the ``related_name``
+parameter in the ``ForeignKey()`` definition. For example, if the ``Entry``
+model was altered to ``blog = ForeignKey(Blog, related_name='entries')``, the
+above example code would look like this::
+
+    >>> b = Blog.objects.get(id=1)
+    >>> b.entries.all() # Returns all Entry objects related to Blog.
+
+    # b.entries is a Manager that returns QuerySets.
+    >>> b.entries.filter(headline__contains='Lennon')
+    >>> b.entries.count()
+
+You cannot access a reverse ``ForeignKey`` ``Manager`` from the class; it must
+be accessed from an instance::
+
+    >>> Blog.entry_set
+    Traceback:
+        ...
+    AttributeError: "Manager must be accessed via instance".
+
+In addition to the ``QuerySet`` methods defined in "Retrieving objects" above,
+the ``ForeignKey`` ``Manager`` has additional methods used to handle the set of
+related objects. A synopsis of each is below, and complete details can be found
+in the :ref:`related objects reference <ref-models-relations>`.
+
+``add(obj1, obj2, ...)``
+    Adds the specified model objects to the related object set.
+
+``create(**kwargs)``
+    Creates a new object, saves it and puts it in the related object set.
+    Returns the newly created object.
+
+``remove(obj1, obj2, ...)``
+    Removes the specified model objects from the related object set.
+
+``clear()``
+    Removes all objects from the related object set.
+
+To assign the members of a related set in one fell swoop, just assign to it
+from any iterable object. Example::
+
+    b = Blog.objects.get(id=1)
+    b.entry_set = [e1, e2]
+
+If the ``clear()`` method is available, any pre-existing objects will be
+removed from the ``entry_set`` before all objects in the iterable (in this
+case, a list) are added to the set. If the ``clear()`` method is *not*
+available, all objects in the iterable will be added without removing any
+existing elements.
+
+Each "reverse" operation described in this section has an immediate effect on
+the database. Every addition, creation and deletion is immediately and
+automatically saved to the database.
+
+Many-to-many relationships
+--------------------------
+
+Both ends of a many-to-many relationship get automatic API access to the other
+end. The API works just as a "backward" one-to-many relationship, above.
+
+The only difference is in the attribute naming: The model that defines the
+``ManyToManyField`` uses the attribute name of that field itself, whereas the
+"reverse" model uses the lowercased model name of the original model, plus
+``'_set'`` (just like reverse one-to-many relationships).
+
+An example makes this easier to understand::
+
+    e = Entry.objects.get(id=3)
+    e.authors.all() # Returns all Author objects for this Entry.
+    e.authors.count()
+    e.authors.filter(name__contains='John')
+
+    a = Author.objects.get(id=5)
+    a.entry_set.all() # Returns all Entry objects for this Author.
+
+Like ``ForeignKey``, ``ManyToManyField`` can specify ``related_name``. In the
+above example, if the ``ManyToManyField`` in ``Entry`` had specified
+``related_name='entries'``, then each ``Author`` instance would have an
+``entries`` attribute instead of ``entry_set``.
+
+One-to-one relationships
+------------------------
+
+The semantics of one-to-one relationships will be changing soon, so we don't
+recommend you use them.
+
+How are the backward relationships possible?
+--------------------------------------------
+
+Other object-relational mappers require you to define relationships on both
+sides. The Django developers believe this is a violation of the DRY (Don't
+Repeat Yourself) principle, so Django only requires you to define the
+relationship on one end.
+
+But how is this possible, given that a model class doesn't know which other
+model classes are related to it until those other model classes are loaded?
+
+The answer lies in the :setting:`INSTALLED_APPS` setting. The first time any model is
+loaded, Django iterates over every model in :setting:`INSTALLED_APPS` and creates the
+backward relationships in memory as needed. Essentially, one of the functions
+of :setting:`INSTALLED_APPS` is to tell Django the entire model domain.
+
+Queries over related objects
+----------------------------
+
+Queries involving related objects follow the same rules as queries involving
+normal value fields. When specifying the value for a query to match, you may
+use either an object instance itself, or the primary key value for the object.
+
+For example, if you have a Blog object ``b`` with ``id=5``, the following
+three queries would be identical::
+
+    Entry.objects.filter(blog=b) # Query using object instance
+    Entry.objects.filter(blog=b.id) # Query using id from instance
+    Entry.objects.filter(blog=5) # Query using id directly
+
+Falling back to raw SQL
+=======================
+
+If you find yourself needing to write an SQL query that is too complex for
+Django's database-mapper to handle, you can fall back into raw-SQL statement
+mode.
+
+The preferred way to do this is by giving your model custom methods or custom
+manager methods that execute queries. Although there's nothing in Django that
+*requires* database queries to live in the model layer, this approach keeps all
+your data-access logic in one place, which is smart from an code-organization
+standpoint. For instructions, see :ref:`topics-db-sql`.
+
+Finally, it's important to note that the Django database layer is merely an
+interface to your database. You can access your database via other tools,
+programming languages or database frameworks; there's nothing Django-specific
+about your database.
\ No newline at end of file
diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt
new file mode 100644
index 0000000000..21cceba58b
--- /dev/null
+++ b/docs/topics/db/sql.txt
@@ -0,0 +1,35 @@
+.. _topics-db-sql:
+
+Performing raw SQL queries
+==========================
+
+Feel free to write custom SQL statements in custom model methods and
+module-level methods. The object ``django.db.connection`` represents the
+current database connection. To use it, call ``connection.cursor()`` to get a
+cursor object. Then, call ``cursor.execute(sql, [params])`` to execute the SQL
+and ``cursor.fetchone()`` or ``cursor.fetchall()`` to return the resulting
+rows. Example::
+
+    def my_custom_sql(self):
+        from django.db import connection
+        cursor = connection.cursor()
+        cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
+        row = cursor.fetchone()
+        return row
+
+``connection`` and ``cursor`` mostly implement the standard `Python DB-API`_
+(except when it comes to :ref:`transaction handling <topics-db-transactions>`).
+If you're not familiar with the Python DB-API, note that the SQL statement in
+``cursor.execute()`` uses placeholders, ``"%s"``, rather than adding parameters
+directly within the SQL. If you use this technique, the underlying database
+library will automatically add quotes and escaping to your parameter(s) as
+necessary. (Also note that Django expects the ``"%s"`` placeholder, *not* the
+``"?"`` placeholder, which is used by the SQLite Python bindings. This is for
+the sake of consistency and sanity.)
+
+A final note: If all you want to do is a custom ``WHERE`` clause, you can just
+use the ``where``, ``tables`` and ``params`` arguments to the standard lookup
+API. 
+
+.. _Python DB-API: http://www.python.org/peps/pep-0249.html
+
diff --git a/docs/transactions.txt b/docs/topics/db/transactions.txt
similarity index 99%
rename from docs/transactions.txt
rename to docs/topics/db/transactions.txt
index da7039cbab..c355b4c8e1 100644
--- a/docs/transactions.txt
+++ b/docs/topics/db/transactions.txt
@@ -1,3 +1,5 @@
+.. _topics-db-transactions:
+
 ==============================
 Managing database transactions
 ==============================
diff --git a/docs/email.txt b/docs/topics/email.txt
similarity index 88%
rename from docs/email.txt
rename to docs/topics/email.txt
index e54620c818..66fdfd6a66 100644
--- a/docs/email.txt
+++ b/docs/topics/email.txt
@@ -1,7 +1,12 @@
+.. _topics-email:
+
 ==============
 Sending e-mail
 ==============
 
+.. module:: django.core.mail
+   :synopsis: Helpers to easily send e-mail.
+
 Although Python makes sending e-mail relatively easy via the `smtplib library`_,
 Django provides a couple of light wrappers over it, to make sending e-mail
 extra quick.
@@ -20,32 +25,24 @@ In two lines::
     send_mail('Subject here', 'Here is the message.', 'from@example.com',
         ['to@example.com'], fail_silently=False)
 
-Mail is sent using the SMTP host and port specified in the `EMAIL_HOST`_ and
-`EMAIL_PORT`_ settings. The `EMAIL_HOST_USER`_ and `EMAIL_HOST_PASSWORD`_
-settings, if set, are used to authenticate to the SMTP server, and the
-`EMAIL_USE_TLS`_ setting controls whether a secure connection is used.
+Mail is sent using the SMTP host and port specified in the :setting:`EMAIL_HOST`
+and :setting:`EMAIL_PORT` settings. The :setting:`EMAIL_HOST_USER` and
+:setting:`EMAIL_HOST_PASSWORD` settings, if set, are used to authenticate to the
+SMTP server, and the :setting:`EMAIL_USE_TLS` setting controls whether a secure
+connection is used.
 
 .. note::
 
     The character set of e-mail sent with ``django.core.mail`` will be set to
-    the value of your `DEFAULT_CHARSET`_ setting.
-
-.. _DEFAULT_CHARSET: ../settings/#default-charset
-.. _EMAIL_HOST: ../settings/#email-host
-.. _EMAIL_PORT: ../settings/#email-port
-.. _EMAIL_HOST_USER: ../settings/#email-host-user
-.. _EMAIL_HOST_PASSWORD: ../settings/#email-host-password
-.. _EMAIL_USE_TLS: ../settings/#email-use-tls
+    the value of your :setting:`DEFAULT_CHARSET` setting.
 
 send_mail()
 ===========
 
 The simplest way to send e-mail is using the function
-``django.core.mail.send_mail()``. Here's its definition::
+``django.core.mail.send_mail()``. Here's its definition:
 
-    send_mail(subject, message, from_email, recipient_list,
-        fail_silently=False, auth_user=None,
-        auth_password=None)
+    .. function:: send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None)
 
 The ``subject``, ``message``, ``from_email`` and ``recipient_list`` parameters
 are required.
@@ -72,10 +69,9 @@ send_mass_mail()
 ================
 
 ``django.core.mail.send_mass_mail()`` is intended to handle mass e-mailing.
-Here's the definition::
+Here's the definition:
 
-    send_mass_mail(datatuple, fail_silently=False,
-        auth_user=None, auth_password=None):
+    .. function:: send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password=None)
 
 ``datatuple`` is a tuple in which each element is in this format::
 
@@ -86,7 +82,7 @@ as in ``send_mail()``.
 
 Each separate element of ``datatuple`` results in a separate e-mail message.
 As in ``send_mail()``, recipients in the same ``recipient_list`` will all see
-the other addresses in the e-mail messages's "To:" field.
+the other addresses in the e-mail messages' "To:" field.
 
 send_mass_mail() vs. send_mail()
 --------------------------------
@@ -100,31 +96,26 @@ mail_admins()
 =============
 
 ``django.core.mail.mail_admins()`` is a shortcut for sending an e-mail to the
-site admins, as defined in the `ADMINS`_ setting. Here's the definition::
+site admins, as defined in the :setting:`ADMINS` setting. Here's the definition:
 
-    mail_admins(subject, message, fail_silently=False)
+    .. function:: mail_admins(subject, message, fail_silently=False)
 
 ``mail_admins()`` prefixes the subject with the value of the
-`EMAIL_SUBJECT_PREFIX`_ setting, which is ``"[Django] "`` by default.
+:setting:`EMAIL_SUBJECT_PREFIX` setting, which is ``"[Django] "`` by default.
 
-The "From:" header of the e-mail will be the value of the `SERVER_EMAIL`_ setting.
+The "From:" header of the e-mail will be the value of the
+:setting:`SERVER_EMAIL` setting.
 
 This method exists for convenience and readability.
 
-.. _ADMINS: ../settings/#admins
-.. _EMAIL_SUBJECT_PREFIX: ../settings/#email-subject-prefix
-.. _SERVER_EMAIL: ../settings/#server-email
-
 mail_managers() function
 ========================
 
 ``django.core.mail.mail_managers()`` is just like ``mail_admins()``, except it
-sends an e-mail to the site managers, as defined in the `MANAGERS`_ setting.
-Here's the definition::
+sends an e-mail to the site managers, as defined in the :setting:`MANAGERS`
+setting. Here's the definition:
 
-    mail_managers(subject, message, fail_silently=False)
-
-.. _MANAGERS: ../settings/#managers
+    .. function:: mail_managers(subject, message, fail_silently=False)
 
 Examples
 ========
@@ -185,6 +176,8 @@ from the request's POST data, sends that to admin@example.com and redirects to
 
 .. _Header injection: http://securephp.damonkohler.com/index.php/Email_Injection
 
+.. _emailmessage-and-smtpconnection:
+
 The EmailMessage and SMTPConnection classes
 ===========================================
 
@@ -212,8 +205,10 @@ itself. ``SMTPConnection`` is responsible for the network connection side of
 the operation. This means you can reuse the same connection (an
 ``SMTPConnection`` instance) for multiple messages.
 
-E-mail messages
----------------
+EmailMessage Objects
+--------------------
+
+.. class:: EmailMessage
 
 The ``EmailMessage`` class is initialized with the following parameters (in
 the given order, if positional arguments are used). All parameters are
@@ -225,7 +220,7 @@ optional and can be set at any time prior to calling the ``send()`` method.
 
     * ``from_email``: The sender's address. Both ``fred@example.com`` and
       ``Fred <fred@example.com>`` forms are legal. If omitted, the
-      `DEFAULT_FROM_EMAIL`_ setting is used.
+      :setting:`DEFAULT_FROM_EMAIL` setting is used.
 
     * ``to``: A list or tuple of recipient addresses.
 
@@ -233,7 +228,7 @@ optional and can be set at any time prior to calling the ``send()`` method.
       sending the e-mail.
 
     * ``connection``: An ``SMTPConnection`` instance. Use this parameter if
-      you want to use the same conneciton for multiple messages. If omitted, a
+      you want to use the same connection for multiple messages. If omitted, a
       new connection is created when ``send()`` is called.
 
     * ``attachments``: A list of attachments to put on the message. These can
@@ -336,8 +331,10 @@ example::
     msg.content_subtype = "html"  # Main content is now text/html
     msg.send()
 
-SMTP network connections
-------------------------
+SMTPConnection Objects
+----------------------
+
+.. class:: SMTPConnection
 
 The ``SMTPConnection`` class is initialized with the host, port, username and
 password for the SMTP server. If you don't specify one or more of those
diff --git a/docs/topics/files.txt b/docs/topics/files.txt
new file mode 100644
index 0000000000..662110111a
--- /dev/null
+++ b/docs/topics/files.txt
@@ -0,0 +1,146 @@
+.. _topics-files:
+
+==============
+Managing files
+==============
+
+**New in Django development version**
+
+This document describes Django's file access APIs.
+
+By default, Django stores files locally, using the :setting:`MEDIA_ROOT` and
+:setting:`MEDIA_URL` settings. The examples below assume that you're using these
+defaults.
+
+However, Django provides ways to write custom `file storage systems`_ that
+allow you to completely customize where and how Django stores files. The
+second half of this document describes how these storage systems work.
+
+.. _file storage systems: `File storage`_
+
+Using files in models
+=====================
+
+When you use a :class:`~django.db.models.FileField` or
+:class:`~django.db.models.ImageField`, Django provides a set of APIs you can use
+to deal with that file.
+
+Consider the following model, using a ``FileField`` to store a photo::
+
+    class Car(models.Model):
+        name = models.CharField(max_length=255)
+        price = models.DecimalField(max_digits=5, decimal_places=2)
+        photo = models.ImageField(upload_to='cars')
+
+Any ``Car`` instance will have a ``photo`` attribute that you can use to get at
+the details of the attached photo::
+
+    >>> car = Car.object.get(name="57 Chevy")
+    >>> car.photo
+    <ImageFieldFile: chevy.jpg>
+    >>> car.photo.name
+    u'chevy.jpg'
+    >>> car.photo.path
+    u'/media/cars/chevy.jpg'
+    >>> car.photo.url
+    u'http://media.example.com/cars/chevy.jpg'
+
+This object -- ``car.photo`` in the example -- is a ``File`` object, which means
+it has all the methods and attributes described below.
+
+The ``File`` object
+===================
+
+Internally, Django uses a ``django.core.files.File`` any time it needs to
+represent a file. This object is a thin wrapper around Python's `built-in file
+object`_ with some Django-specific additions.
+
+.. _built-in file object: http://docs.python.org/lib/bltin-file-objects.html
+
+Most of the time you'll simply use a ``File`` that Django's given you (i.e. a
+file attached to a model as above, or perhaps an uploaded file).
+
+If you need to construct a ``File`` yourself, the easiest way is to create one
+using a Python built-in ``file`` object::
+
+    >>> from django.core.files import File
+
+    # Create a Python file object using open()
+    >>> f = open('/tmp/hello.world', 'w')
+    >>> myfile = File(f)
+
+Now you can use any of the ``File`` attributes and methods documented in
+:ref:`ref-files-file`.
+
+File storage
+============
+
+Behind the scenes, Django delegates decisions about how and where to store files
+to a file storage system. This is the object that actually understands things
+like file systems, opening and reading files, etc.
+
+Django's default file storage is given by the :setting:`DEFAULT_FILE_STORAGE`
+setting; if you don't explicitly provide a storage system, this is the one that
+will be used.
+
+See below for details of the built-in default file storage system, and see
+:ref:`howto-custom-file-storage` for information on writing your own file
+storage system.
+
+Storage objects
+---------------
+
+Though most of the time you'll want to use a ``File`` object (which delegates to
+the proper storage for that file), you can use file storage systems directly.
+You can create an instance of some custom file storage class, or -- often more
+useful -- you can use the global default storage system::
+
+    >>> from django.core.files.storage import default_storage
+
+    >>> path = default_storage.save('/path/to/file', 'new content')
+    >>> path
+    u'/path/to/file'
+
+    >>> default_storage.filesize(path)
+    11
+    >>> default_storage.open(path).read()
+    'new content'
+
+    >>> default_storage.delete(path)
+    >>> default_storage.exists(path)
+    False
+
+See :ref:`ref-files-storage` for the file storage API. 
+
+The built-in filesystem storage class
+-------------------------------------
+
+Django ships with a built-in ``FileSystemStorage`` class (defined in
+``django.core.files.storage``) which implements basic local filesystem file
+storage. Its initializer takes two arguments:
+
+======================  ===================================================
+Argument                Description
+======================  ===================================================
+``location``            Optional. Absolute path to the directory that will
+                        hold the files. If omitted, it will be set to the
+                        value of your ``MEDIA_ROOT`` setting.
+``base_url``            Optional. URL that serves the files stored at this
+                        location. If omitted, it will default to the value
+                        of your ``MEDIA_URL`` setting.
+======================  ===================================================
+
+For example, the following code will store uploaded files under
+``/media/photos`` regardless of what your ``MEDIA_ROOT`` setting is::
+
+    from django.db import models
+    from django.core.files.storage import FileSystemStorage
+
+    fs = FileSystemStorage(location='/media/photos')
+
+    class Car(models.Model):
+        ...
+        photo = models.ImageField(storage=fs)
+
+:ref:`Custom storage systems <howto-custom-file-storage>` work the same way: you
+can pass them in as the ``storage`` argument to a ``FileField``.
\ No newline at end of file
diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt
new file mode 100644
index 0000000000..5d1e3ed729
--- /dev/null
+++ b/docs/topics/forms/formsets.txt
@@ -0,0 +1,329 @@
+.. _topics-forms-formsets:
+.. _formsets:
+
+Formsets
+========
+
+A formset is a layer of abstraction to working with multiple forms on the same
+page. It can be best compared to a data grid. Let's say you have the following
+form::
+
+    >>> from django import forms
+    >>> class ArticleForm(forms.Form):
+    ...     title = forms.CharField()
+    ...     pub_date = forms.DateField()
+
+You might want to allow the user to create several articles at once. To create
+a formset out of an ``ArticleForm`` you would do::
+
+    >>> from django.forms.formsets import formset_factory
+    >>> ArticleFormSet = formset_factory(ArticleForm)
+
+You now have created a formset named ``ArticleFormSet``. The formset gives you
+the ability to iterate over the forms in the formset and display them as you
+would with a regular form::
+
+    >>> formset = ArticleFormSet()
+    >>> for form in formset.forms:
+    ...     print form.as_table()
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
+
+As you can see it only displayed one form. This is because by default the
+``formset_factory`` defines one extra form. This can be controlled with the
+``extra`` parameter::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
+
+Using initial data with a formset
+---------------------------------
+
+Initial data is what drives the main usability of a formset. As shown above
+you can define the number of extra forms. What this means is that you are
+telling the formset how many additional forms to show in addition to the
+number of forms it generates from the initial data. Lets take a look at an
+example::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
+    >>> formset = ArticleFormSet(initial=[
+    ...     {'title': u'Django is now open source',
+    ...      'pub_date': datetime.date.today()},
+    ... ])
+
+    >>> for form in formset.forms:
+    ...     print form.as_table()
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Django is now open source" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-12" id="id_form-0-pub_date" /></td></tr>
+    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" id="id_form-1-title" /></td></tr>
+    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" id="id_form-1-pub_date" /></td></tr>
+    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
+    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
+
+There are now a total of three forms showing above. One for the initial data
+that was passed in and two extra forms. Also note that we are passing in a
+list of dictionaries as the initial data.
+
+Limiting the maximum number of forms
+------------------------------------
+
+The ``max_num`` parameter to ``formset_factory`` gives you the ability to
+force the maximum number of forms the formset will display::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2, max_num=1)
+    >>> formset = ArticleFormset()
+    >>> for form in formset.forms:
+    ...     print form.as_table()
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
+
+The default value of ``max_num`` is ``0`` which is the same as saying put no
+limit on the number forms displayed.
+
+Formset validation
+------------------
+
+Validation with a formset is about identical to a regular ``Form``. There is
+an ``is_valid`` method on the formset to provide a convenient way to validate
+each form in the formset::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm)
+    >>> formset = ArticleFormSet({})
+    >>> formset.is_valid()
+    True
+
+We passed in no data to the formset which is resulting in a valid form. The
+formset is smart enough to ignore extra forms that were not changed. If we
+attempt to provide an article, but fail to do so::
+
+    >>> data = {
+    ...     'form-TOTAL_FORMS': u'1',
+    ...     'form-INITIAL_FORMS': u'1',
+    ...     'form-0-title': u'Test',
+    ...     'form-0-pub_date': u'',
+    ... }
+    >>> formset = ArticleFormSet(data)
+    >>> formset.is_valid()
+    False
+    >>> formset.errors
+    [{'pub_date': [u'This field is required.']}]
+
+As we can see the formset properly performed validation and gave us the
+expected errors.
+
+Understanding the ManagementForm
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You may have noticed the additional data that was required in the formset's
+data above. This data is coming from the ``ManagementForm``. This form is
+dealt with internally to the formset. If you don't use it, it will result in
+an exception::
+
+    >>> data = {
+    ...     'form-0-title': u'Test',
+    ...     'form-0-pub_date': u'',
+    ... }
+    >>> formset = ArticleFormSet(data)
+    Traceback (most recent call last):
+    ...
+    django.forms.util.ValidationError: [u'ManagementForm data is missing or has been tampered with']
+
+It is used to keep track of how many form instances are being displayed. If
+you are adding new forms via JavaScript, you should increment the count fields
+in this form as well.
+
+Custom formset validation
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A formset has a ``clean`` method similar to the one on a ``Form`` class. This
+is where you define your own validation that deals at the formset level::
+
+    >>> from django.forms.formsets import BaseFormSet
+
+    >>> class BaseArticleFormSet(BaseFormSet):
+    ...     def clean(self):
+    ...         raise forms.ValidationError, u'An error occured.'
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet)
+    >>> formset = ArticleFormSet({})
+    >>> formset.is_valid()
+    False
+    >>> formset.non_form_errors()
+    [u'An error occured.']
+
+The formset ``clean`` method is called after all the ``Form.clean`` methods
+have been called. The errors will be found using the ``non_form_errors()``
+method on the formset.
+
+Dealing with ordering and deletion of forms
+-------------------------------------------
+
+Common use cases with a formset is dealing with ordering and deletion of the
+form instances. This has been dealt with for you. The ``formset_factory``
+provides two optional parameters ``can_order`` and ``can_delete`` that will do
+the extra work of adding the extra fields and providing simpler ways of
+getting to that data.
+
+``can_order``
+~~~~~~~~~~~~~
+
+Default: ``False``
+
+Lets create a formset with the ability to order::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, can_order=True)
+    >>> formset = ArticleFormSet(initial=[
+    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
+    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
+    ... ])
+    >>> for form in formset.forms:
+    ...     print form.as_table()
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Article #1" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-10" id="id_form-0-pub_date" /></td></tr>
+    <tr><th><label for="id_form-0-ORDER">Order:</label></th><td><input type="text" name="form-0-ORDER" value="1" id="id_form-0-ORDER" /></td></tr>
+    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" value="Article #2" id="id_form-1-title" /></td></tr>
+    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" value="2008-05-11" id="id_form-1-pub_date" /></td></tr>
+    <tr><th><label for="id_form-1-ORDER">Order:</label></th><td><input type="text" name="form-1-ORDER" value="2" id="id_form-1-ORDER" /></td></tr>
+    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
+    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
+    <tr><th><label for="id_form-2-ORDER">Order:</label></th><td><input type="text" name="form-2-ORDER" id="id_form-2-ORDER" /></td></tr>
+
+This adds an additional field to each form. This new field is named ``ORDER``
+and is an ``forms.IntegerField``. For the forms that came from the initial
+data it automatically assigned them a numeric value. Lets look at what will
+happen when the user changes these values::
+
+    >>> data = {
+    ...     'form-TOTAL_FORMS': u'3',
+    ...     'form-INITIAL_FORMS': u'2',
+    ...     'form-0-title': u'Article #1',
+    ...     'form-0-pub_date': u'2008-05-10',
+    ...     'form-0-ORDER': u'2',
+    ...     'form-1-title': u'Article #2',
+    ...     'form-1-pub_date': u'2008-05-11',
+    ...     'form-1-ORDER': u'1',
+    ...     'form-2-title': u'Article #3',
+    ...     'form-2-pub_date': u'2008-05-01',
+    ...     'form-2-ORDER': u'0',
+    ... }
+
+    >>> formset = ArticleFormSet(data, initial=[
+    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
+    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
+    ... ])
+    >>> formset.is_valid()
+    True
+    >>> for form in formset.ordered_forms:
+    ...     print form.cleaned_data
+    {'pub_date': datetime.date(2008, 5, 1), 'ORDER': 0, 'title': u'Article #3'}
+    {'pub_date': datetime.date(2008, 5, 11), 'ORDER': 1, 'title': u'Article #2'}
+    {'pub_date': datetime.date(2008, 5, 10), 'ORDER': 2, 'title': u'Article #1'}
+
+``can_delete``
+~~~~~~~~~~~~~~
+
+Default: ``False``
+
+Lets create a formset with the ability to delete::
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, can_delete=True)
+    >>> formset = ArticleFormSet(initial=[
+    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
+    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
+    ... ])
+    >>> for form in formset.forms:
+    ....    print form.as_table()
+    <input type="hidden" name="form-TOTAL_FORMS" value="3" id="id_form-TOTAL_FORMS" /><input type="hidden" name="form-INITIAL_FORMS" value="2" id="id_form-INITIAL_FORMS" />
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Article #1" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-10" id="id_form-0-pub_date" /></td></tr>
+    <tr><th><label for="id_form-0-DELETE">Delete:</label></th><td><input type="checkbox" name="form-0-DELETE" id="id_form-0-DELETE" /></td></tr>
+    <tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" value="Article #2" id="id_form-1-title" /></td></tr>
+    <tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" value="2008-05-11" id="id_form-1-pub_date" /></td></tr>
+    <tr><th><label for="id_form-1-DELETE">Delete:</label></th><td><input type="checkbox" name="form-1-DELETE" id="id_form-1-DELETE" /></td></tr>
+    <tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr>
+    <tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr>
+    <tr><th><label for="id_form-2-DELETE">Delete:</label></th><td><input type="checkbox" name="form-2-DELETE" id="id_form-2-DELETE" /></td></tr>
+
+Similar to ``can_order`` this adds a new field to each form named ``DELETE``
+and is a ``forms.BooleanField``. When data comes through marking any of the
+delete fields you can access them with ``deleted_forms``::
+
+    >>> data = {
+    ...     'form-TOTAL_FORMS': u'3',
+    ...     'form-INITIAL_FORMS': u'2',
+    ...     'form-0-title': u'Article #1',
+    ...     'form-0-pub_date': u'2008-05-10',
+    ...     'form-0-DELETE': u'on',
+    ...     'form-1-title': u'Article #2',
+    ...     'form-1-pub_date': u'2008-05-11',
+    ...     'form-1-DELETE': u'',
+    ...     'form-2-title': u'',
+    ...     'form-2-pub_date': u'',
+    ...     'form-2-DELETE': u'',
+    ... }
+
+    >>> formset = ArticleFormSet(data, initial=[
+    ...     {'title': u'Article #1', 'pub_date': datetime.date(2008, 5, 10)},
+    ...     {'title': u'Article #2', 'pub_date': datetime.date(2008, 5, 11)},
+    ... ])
+    >>> [form.cleaned_data for form in formset.deleted_forms]
+    [{'DELETE': True, 'pub_date': datetime.date(2008, 5, 10), 'title': u'Article #1'}]
+
+Adding additional fields to a formset
+-------------------------------------
+
+If you need to add additional fields to the formset this can be easily
+accomplished. The formset base class provides an ``add_fields`` method. You
+can simply override this method to add your own fields or even redefine the
+default fields/attributes of the order and deletion fields::
+
+    >>> class BaseArticleFormSet(BaseFormSet):
+    ...     def add_fields(self, form, index):
+    ...         super(BaseArticleFormSet, self).add_fields(form, index)
+    ...         form.fields["my_field"] = forms.CharField()
+
+    >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet)
+    >>> formset = ArticleFormSet()
+    >>> for form in formset.forms:
+    ...     print form.as_table()
+    <tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
+    <tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
+    <tr><th><label for="id_form-0-my_field">My field:</label></th><td><input type="text" name="form-0-my_field" id="id_form-0-my_field" /></td></tr>
+
+Using a formset in views and templates
+--------------------------------------
+
+Using a formset inside a view is as easy as using a regular ``Form`` class.
+The only thing you will want to be aware of is making sure to use the
+management form inside the template. Lets look at a sample view::
+
+    def manage_articles(request):
+        ArticleFormSet = formset_factory(ArticleForm)
+        if request.method == 'POST':
+            formset = ArticleFormSet(request.POST, request.FILES)
+            if formset.is_valid():
+                # do something with the formset.cleaned_data
+        else:
+            formset = ArticleFormSet()
+        return render_to_response('manage_articles.html', {'formset': formset})
+
+The ``manage_articles.html`` template might look like this::
+
+    <form method="POST" action="">
+        {{ formset.management_form }}
+        <table>
+            {% for form in formset.forms %}
+            {{ form }}
+            {% endfor %}
+        </table>
+    </form>
+
+However the above can be slightly shortcutted and let the formset itself deal
+with the management form::
+
+    <form method="POST" action="">
+        <table>
+            {{ formset }}
+        </table>
+    </form>
+
+The above ends up calling the ``as_table`` method on the formset class.
diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt
new file mode 100644
index 0000000000..094c57ae5e
--- /dev/null
+++ b/docs/topics/forms/index.txt
@@ -0,0 +1,260 @@
+.. _topics-forms-index:
+
+==================
+Working with forms
+==================
+
+.. admonition:: About this document
+
+    This document provides an introduction to Django's form handling features.
+    For a more detailed look at the forms API, see :ref:`ref-forms-api`. For
+    documentation of the available field types, see :ref:`ref-forms-fields`.
+
+``django.forms`` is Django's form-handling library.
+
+While it is possible to process form submissions just using Django's
+:class:`~django.http.HttpRequest` class, using the form library takes care of a
+number of common form-related tasks. Using it, you can:
+
+    1. Display an HTML form with automatically generated form widgets.
+    2. Checking submitted data against a set of validation rules.
+    3. Redisplaying a form in the case of validation errors.
+    4. Converting submitted form data to the relevant Python data types.
+
+Overview
+========
+
+The library deals with these concepts:
+
+.. glossary::
+
+    Widget
+        A class that corresponds to an HTML form widget, e.g.
+        ``<input type="text">`` or ``<textarea>``. This handles rendering of the
+        widget as HTML.
+
+    Field
+        A class that is responsible for doing validation, e.g.
+        an ``EmailField`` that makes sure its data is a valid e-mail address.
+
+    Form
+        A collection of fields that knows how to validate itself and
+        display itself as HTML.
+
+    Form Media
+        The CSS and JavaScript resources that are required to render a form.
+            
+The library is decoupled from the other Django components, such as the database
+layer, views and templates. It relies only on Django settings, a couple of
+``django.utils`` helper functions and Django's internationalization hooks (but
+you're not required to be using internationalization features to use this
+library).
+
+Form objects
+============
+
+A Form object encapsulates a sequence of form fields and a collection of
+validation rules that must be fulfilled in order for the form to be accepted.
+Form classes are created as subclasses of ``django.forms.Form`` and are
+make use of a declarative style that you'll be familiar with if you've used
+Django's database models.
+
+For example, consider a form used to implement "contact me" functionality on a
+personal Web site::
+
+    from django import forms
+
+    class ContactForm(forms.Form):
+        subject = forms.CharField(max_length=100)
+        message = forms.CharField()
+        sender = forms.EmailField()
+        cc_myself = forms.BooleanField(required=False)
+
+A form is composed of ``Field`` objects. In this case, our form has four
+fields: ``subject``, ``message``, ``sender`` and ``cc_myself``. ``CharField``,
+``EmailField`` and ``BooleanField`` are just three of the available field types;
+a full list can be found in :ref:`ref-forms-fields`.
+
+If your form is going to be used to directly add or edit a Django model, you can
+use a :ref:`ModelForm <topics-forms-modelforms>` to avoid duplicating your model
+description.
+
+Using a form in a view
+----------------------
+
+The standard pattern for processing a form in a view looks like this::
+
+   def contact(request):
+       if request.method == 'POST': # If the form has been submitted...
+           form = ContactForm(request.POST) # A form bound to the POST data
+           if form.is_valid(): # All validation rules pass
+               # Process the data in form.cleaned_data
+               # ...
+               return HttpResponseRedirect('/thanks/') # Redirect after POST
+       else:
+           form = ContactForm() # An unbound form
+   
+       return render_to_response('contact.html', {
+           'form': form,
+       })
+
+
+There are three code paths here:
+
+    1. If the form has not been submitted, an unbound instance of ContactForm is
+       created and passed to the template.
+    2. If the form has been submitted, a bound instance of the form is created
+       using ``request.POST``. If the submitted data is valid, it is processed
+       and the user is re-directed to a "thanks" page.
+    3. If the form has been submitted but is invalid, the bound form instance is
+       passed on to the template.
+
+.. note::
+    **New in Django development version** The ``cleaned_data`` attribute was
+    called ``clean_data`` in earlier releases.
+
+The distinction between **bound** and **unbound** forms is important. An unbound
+form does not have any data associated with it; when rendered to the user, it
+will be empty or will contain default values. A bound form does have submitted
+data, and hence can be used to tell if that data is valid. If an invalid bound
+form is rendered it can include inline error messages telling the user where
+they went wrong.
+
+See :ref:`ref-forms-api-bound-unbound` for further information on the
+differences between bound and unbound forms.
+
+Processing the data from a form
+-------------------------------
+
+Once ``is_valid()`` returns ``True``, you can process the form submission safe
+in the knowledge that it conforms to the validation rules defined by your form.
+While you could access ``request.POST`` directly at this point, it is better to
+access ``form.cleaned_data``. This data has not only been validated but will
+also be converted in to the relevant Python types for you. In the above example,
+``cc_myself`` will be a boolean value. Likewise, fields such as ``IntegerField``
+and ``FloatField`` convert values to a Python int and float respectively.
+
+Extending the above example, here's how the form data could be processed::
+
+    if form.is_valid():
+        subject = form.cleaned_data['subject']
+        message = form.cleaned_data['message']
+        sender = form.cleaned_data['sender']
+        cc_myself = form.cleaned_data['cc_myself']
+    
+        recipients = ['info@example.com']
+        if cc_myself:
+            recipients.append(sender)
+    
+        from django.core.mail import send_mail
+        send_mail(subject, message, sender, recipients)
+        return HttpResponseRedirect('/thanks/') # Redirect after POST
+
+For more on sending e-mail from Django, see :ref:`topics-email`.
+
+Displaying a form using a template
+----------------------------------
+
+Forms are designed to work with the Django template language. In the above
+example, we passed our ``ContactForm`` instance to the template using the
+context variable ``form``. Here's a simple example template::
+
+    <form action="/contact/" method="POST">
+    {{ form.as_p }}
+    <input type="submit" value="Submit">
+    </form>
+
+The form only outputs its own fields; it is up to you to provide the surrounding
+``<form>`` tags and the submit button.
+
+``form.as_p`` will output the form with each form field and accompanying label
+wrapped in a paragraph. Here's the output for our example template::
+
+   <form action="/contact/" method="POST">
+   <p><label for="id_subject">Subject:</label>
+       <input id="id_subject" type="text" name="subject" maxlength="100" /></p>
+   <p><label for="id_message">Message:</label>
+       <input type="text" name="message" id="id_message" /></p>
+   <p><label for="id_sender">Sender:</label>
+       <input type="text" name="sender" id="id_sender" /></p>
+   <p><label for="id_cc_myself">Cc myself:</label>
+       <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>
+   <input type="submit" value="Submit">
+   </form>
+   
+Note that each form field has an ID attribute set to ``id_<field-name>``, which
+is referenced by the accompanying label tag. This is important for ensuring
+forms are accessible to assistive technology such as screen reader software. You
+can also :ref:`customize the way in which labels and ids are generated
+<ref-forms-api-configuring-label>`.
+
+You can also use ``form.as_table`` to output table rows (you'll need to provide
+your own ``<table>`` tags) and ``form.as_li`` to output list items.
+
+Customizing the form template
+-----------------------------
+
+If the default generated HTML is not to your taste, you can completely customize
+the way a form is presented using the Django template language. Extending the
+above example::
+
+    <form action="/contact/" method="POST">
+        <div class="fieldWrapper">
+            {{ form.subject.errors }}
+            <label for="id_subject">E-mail subject:</label>
+            {{ form.subject }}
+        </div>
+        <div class="fieldWrapper">
+            {{ form.message.errors }}
+            <label for="id_message">Your message:</label>
+            {{ form.message }}
+        </div>
+        <div class="fieldWrapper">
+            {{ form.sender.errors }}
+            <label for="id_sender">Your email address:</label>
+            {{ form.sender }}
+        </div>
+        <div class="fieldWrapper">
+            {{ form.cc_myself.errors }}
+            <label for="id_cc_myself">CC yourself?</label>
+            {{ form.cc_myself }}
+        </div>
+        <p><input type="submit" value="Send message"></p>
+    </form>
+
+Each named form-field can be output to the template using
+``{{ form.name_of_field }}``, which will produce the HTML needed to display the
+form widget. Using ``{{ form.name_of_field.errors }}`` displays a list of form
+errors, rendered as an unordered list. This might look like::
+
+   <ul class="errorlist">
+       <li>Sender is required.</li>
+   </ul>
+
+The list has a CSS class of ``errorlist`` to allow you to style its appearance.
+If you wish to further customize the display of errors you can do so by looping
+over them::
+
+    {% if form.subject.errors %}
+        <ol>
+        {% for error in form.message.errors %}
+            <li><strong>{{ error|escape }}</strong></li>
+        {% endfor %}
+        </ol>
+    {% endif %}
+    
+Further topics
+==============
+
+This covers the basics, but forms can do a whole lot more:
+
+.. toctree::
+   :maxdepth: 1
+
+   modelforms
+   formsets
+   media
+   
+.. seealso::
+
+    The :ref:`form API reference <ref-forms-index>`.
\ No newline at end of file
diff --git a/docs/topics/forms/media.txt b/docs/topics/forms/media.txt
new file mode 100644
index 0000000000..12181fcf06
--- /dev/null
+++ b/docs/topics/forms/media.txt
@@ -0,0 +1,311 @@
+.. _topics-forms-media:
+
+Form Media
+==========
+
+Rendering an attractive and easy-to-use web form requires more than just
+HTML - it also requires CSS stylesheets, and if you want to use fancy
+"Web2.0" widgets, you may also need to include some JavaScript on each
+page. The exact combination of CSS and JavaScript that is required for
+any given page will depend upon the widgets that are in use on that page.
+
+This is where Django media definitions come in. Django allows you to
+associate different media files with the forms and widgets that require
+that media. For example, if you want to use a calendar to render DateFields,
+you can define a custom Calendar widget. This widget can then be associated
+with the CSS and JavaScript that is required to render the calendar. When
+the Calendar widget is used on a form, Django is able to identify the CSS and
+JavaScript files that are required, and provide the list of file names
+in a form suitable for easy inclusion on your web page.
+
+.. admonition:: Media and Django Admin
+
+    The Django Admin application defines a number of customized widgets
+    for calendars, filtered selections, and so on. These widgets define
+    media requirements, and the Django Admin uses the custom widgets
+    in place of the Django defaults. The Admin templates will only include
+    those media files that are required to render the widgets on any
+    given page.
+
+    If you like the widgets that the Django Admin application uses,
+    feel free to use them in your own application! They're all stored
+    in ``django.contrib.admin.widgets``.
+
+.. admonition:: Which JavaScript toolkit?
+
+    Many JavaScript toolkits exist, and many of them include widgets (such
+    as calendar widgets) that can be used to enhance your application.
+    Django has deliberately avoided blessing any one JavaScript toolkit.
+    Each toolkit has its own relative strengths and weaknesses - use
+    whichever toolkit suits your requirements. Django is able to integrate
+    with any JavaScript toolkit.
+
+Media as a static definition
+----------------------------
+
+The easiest way to define media is as a static definition. Using this method,
+the media declaration is an inner class. The properties of the inner class
+define the media requirements.
+
+Here's a simple example::
+
+    class CalendarWidget(forms.TextInput):
+        class Media:
+            css = {
+                'all': ('pretty.css',)
+            }
+            js = ('animations.js', 'actions.js')
+
+This code defines a ``CalendarWidget``, which will be based on ``TextInput``.
+Every time the CalendarWidget is used on a form, that form will be directed
+to include the CSS file ``pretty.css``, and the JavaScript files
+``animations.js`` and ``actions.js``.
+
+This static media definition is converted at runtime into a widget property
+named ``media``. The media for a CalendarWidget instance can be retrieved
+through this property::
+
+    >>> w = CalendarWidget()
+    >>> print w.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+
+Here's a list of all possible ``Media`` options. There are no required options.
+
+``css``
+~~~~~~~
+
+A dictionary describing the CSS files required for various forms of output
+media.
+
+The values in the dictionary should be a tuple/list of file names. See
+`the section on media paths`_ for details of how to specify paths to media
+files.
+
+.. _the section on media paths: `Paths in media definitions`_
+
+The keys in the dictionary are the output media types. These are the same
+types accepted by CSS files in media declarations: 'all', 'aural', 'braille',
+'embossed', 'handheld', 'print', 'projection', 'screen', 'tty' and 'tv'. If
+you need to have different stylesheets for different media types, provide
+a list of CSS files for each output medium. The following example would
+provide two CSS options -- one for the screen, and one for print::
+
+    class Media:
+        css = {
+            'screen': ('pretty.css',),
+            'print': ('newspaper.css',)
+        }
+
+If a group of CSS files are appropriate for multiple output media types,
+the dictionary key can be a comma separated list of output media types.
+In the following example, TV's and projectors will have the same media
+requirements::
+
+    class Media:
+        css = {
+            'screen': ('pretty.css',),
+            'tv,projector': ('lo_res.css',),
+            'print': ('newspaper.css',)
+        }
+
+If this last CSS definition were to be rendered, it would become the following HTML::
+
+    <link href="http://media.example.com/pretty.css" type="text/css" media="screen" rel="stylesheet" />
+    <link href="http://media.example.com/lo_res.css" type="text/css" media="tv,projector" rel="stylesheet" />
+    <link href="http://media.example.com/newspaper.css" type="text/css" media="print" rel="stylesheet" />
+
+``js``
+~~~~~~
+
+A tuple describing the required JavaScript files. See
+`the section on media paths`_ for details of how to specify paths to media
+files.
+
+``extend``
+~~~~~~~~~~
+
+A boolean defining inheritance behavior for media declarations.
+
+By default, any object using a static media definition will inherit all the
+media associated with the parent widget. This occurs regardless of how the
+parent defines its media requirements. For example, if we were to extend our
+basic Calendar widget from the example above::
+
+    class FancyCalendarWidget(CalendarWidget):
+        class Media:
+            css = {
+                'all': ('fancy.css',)
+            }
+            js = ('whizbang.js',)
+
+    >>> w = FancyCalendarWidget()
+    >>> print w.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <link href="http://media.example.com/fancy.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
+
+The FancyCalendar widget inherits all the media from it's parent widget. If
+you don't want media to be inherited in this way, add an ``extend=False``
+declaration to the media declaration::
+
+    class FancyCalendar(Calendar):
+        class Media:
+            extend = False
+            css = {
+                'all': ('fancy.css',)
+            }
+            js = ('whizbang.js',)
+
+    >>> w = FancyCalendarWidget()
+    >>> print w.media
+    <link href="http://media.example.com/fancy.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
+
+If you require even more control over media inheritance, define your media
+using a `dynamic property`_. Dynamic properties give you complete control over
+which media files are inherited, and which are not.
+
+.. _dynamic property: `Media as a dynamic property`_
+
+Media as a dynamic property
+---------------------------
+
+If you need to perform some more sophisticated manipulation of media
+requirements, you can define the media property directly. This is done
+by defining a model property that returns an instance of ``forms.Media``.
+The constructor for ``forms.Media`` accepts ``css`` and ``js`` keyword
+arguments in the same format as that used in a static media definition.
+
+For example, the static media definition for our Calendar Widget could
+also be defined in a dynamic fashion::
+
+    class CalendarWidget(forms.TextInput):
+        def _media(self):
+            return forms.Media(css={'all': ('pretty.css',)},
+                               js=('animations.js', 'actions.js'))
+        media = property(_media)
+
+See the section on `Media objects`_ for more details on how to construct
+return values for dynamic media properties.
+
+Paths in media definitions
+--------------------------
+
+Paths used to specify media can be either relative or absolute. If a path
+starts with '/', 'http://' or 'https://', it will be interpreted as an absolute
+path, and left as-is. All other paths will be prepended with the value of
+``settings.MEDIA_URL``. For example, if the MEDIA_URL for your site was
+``http://media.example.com/``::
+
+    class CalendarWidget(forms.TextInput):
+        class Media:
+            css = {
+                'all': ('/css/pretty.css',),
+            }
+            js = ('animations.js', 'http://othersite.com/actions.js')
+
+    >>> w = CalendarWidget()
+    >>> print w.media
+    <link href="/css/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://othersite.com/actions.js"></script>
+
+Media objects
+-------------
+
+When you interrogate the media attribute of a widget or form, the value that
+is returned is a ``forms.Media`` object. As we have already seen, the string
+representation of a Media object is the HTML required to include media
+in the ``<head>`` block of your HTML page.
+
+However, Media objects have some other interesting properties.
+
+Media subsets
+~~~~~~~~~~~~~
+
+If you only want media of a particular type, you can use the subscript operator
+to filter out a medium of interest. For example::
+
+    >>> w = CalendarWidget()
+    >>> print w.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+
+    >>> print w.media['css']
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+
+When you use the subscript operator, the value that is returned is a new
+Media object -- but one that only contains the media of interest.
+
+Combining media objects
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Media objects can also be added together. When two media objects are added,
+the resulting Media object contains the union of the media from both files::
+
+    class CalendarWidget(forms.TextInput):
+        class Media:
+            css = {
+                'all': ('pretty.css',)
+            }
+            js = ('animations.js', 'actions.js')
+
+    class OtherWidget(forms.TextInput):
+        class Media:
+            js = ('whizbang.js',)
+
+    >>> w1 = CalendarWidget()
+    >>> w2 = OtherWidget()
+    >>> print w1.media + w2.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
+
+Media on Forms
+--------------
+
+Widgets aren't the only objects that can have media definitions -- forms
+can also define media. The rules for media definitions on forms are the
+same as the rules for widgets: declarations can be static or dynamic;
+path and inheritance rules for those declarations are exactly the same.
+
+Regardless of whether you define a media declaration, *all* Form objects
+have a media property. The default value for this property is the result
+of adding the media definitions for all widgets that are part of the form::
+
+    class ContactForm(forms.Form):
+        date = DateField(widget=CalendarWidget)
+        name = CharField(max_length=40, widget=OtherWidget)
+
+    >>> f = ContactForm()
+    >>> f.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
+
+If you want to associate additional media with a form -- for example, CSS for form
+layout -- simply add a media declaration to the form::
+
+    class ContactForm(forms.Form):
+        date = DateField(widget=CalendarWidget)
+        name = CharField(max_length=40, widget=OtherWidget)
+
+        class Media:
+            css = {
+                'all': ('layout.css',)
+            }
+
+    >>> f = ContactForm()
+    >>> f.media
+    <link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
+    <link href="http://media.example.com/layout.css" type="text/css" media="all" rel="stylesheet" />
+    <script type="text/javascript" src="http://media.example.com/animations.js"></script>
+    <script type="text/javascript" src="http://media.example.com/actions.js"></script>
+    <script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
diff --git a/docs/modelforms.txt b/docs/topics/forms/modelforms.txt
similarity index 97%
rename from docs/modelforms.txt
rename to docs/topics/forms/modelforms.txt
index b9495e0acd..f93bd0fbf5 100644
--- a/docs/modelforms.txt
+++ b/docs/topics/forms/modelforms.txt
@@ -1,6 +1,8 @@
-=======================
-Using forms with models
-=======================
+.. _topics-forms-modelforms:
+
+==========================
+Creating forms from models
+==========================
 
 ``ModelForm``
 =============
@@ -240,15 +242,12 @@ For example::
     # Create and save the new author instance. There's no need to do anything else.
     >>> new_author = f.save()
 
-Other than the ``save()`` and ``save_m2m()`` methods, a ``ModelForm``
-works exactly the same way as any other ``forms`` form. For
-example, the ``is_valid()`` method is used to check for validity, the
-``is_multipart()`` method is used to determine whether a form requires
-multipart file upload (and hence whether ``request.FILES`` must be
-passed to the form), etc. See `the standard forms documentation`_
-for more information.
-
-.. _the standard forms documentation: ../forms/
+Other than the ``save()`` and ``save_m2m()`` methods, a ``ModelForm`` works
+exactly the same way as any other ``forms`` form. For example, the
+``is_valid()`` method is used to check for validity, the ``is_multipart()``
+method is used to determine whether a form requires multipart file upload (and
+hence whether ``request.FILES`` must be passed to the form), etc. See
+:ref:`topics-forms-index` for more information.
 
 Using a subset of fields on the form
 ------------------------------------
@@ -378,6 +377,8 @@ There are a couple of things to note, however.
 Chances are these notes won't affect you unless you're trying to do something
 tricky with subclassing.
 
+.. _model-formsets:
+
 Model Formsets
 ==============
 
@@ -459,6 +460,8 @@ to the database. If your formset contains a ``ManyToManyField`` you will also
 need to make a call to ``formset.save_m2m()`` to ensure the many-to-many
 relationships are saved properly.
 
+.. _model-formsets-max-num:
+
 Limiting the number of objects editable
 ---------------------------------------
 
@@ -498,4 +501,4 @@ books of a specific author. Here is how you could accomplish this::
     >>> from django.forms.models import inlineformset_factory
     >>> BookFormSet = inlineformset_factory(Author, Book)
     >>> author = Author.objects.get(name=u'Orson Scott Card')
-    >>> formset = BookFormSet(instance=author)
+    >>> formset = BookFormSet(instance=author)
\ No newline at end of file
diff --git a/docs/topics/http/_images/middleware.png b/docs/topics/http/_images/middleware.png
new file mode 100644
index 0000000000000000000000000000000000000000..505c70ac36f85c9481406a721a778eb4fef8df5c
GIT binary patch
literal 56301
zcmY(rWms0*)<1kB-AGH97$7O#%~nKGLXd8dPU#RN1w=%;y9AL=0TBgJK{};dy8mOH
z=XyW9=feGAAH46m=A2`UU#<O0O;w2yj|LBgLJ|I_EU$q=p&i1XY#c23H;Kk?_fRNe
zaT_@~wg2SgnABVxEp6;AP$;joBpq+zHx6g587aJGGe_>6*VPmJzVm4uN|5$Yi{;*U
zq1=4ujP%|IbB;Xa2RX6{Zv^fo6tPjP#n_v)N_o8q=-s|(T@Y(sk2@32+>@+a7TsR=
zj$M%CLUE~^T3eIgp@QW)i#*Pvcd!i&cI$Nl(JYNIv}f58tg~MV3R3Pcn(bmTp-_Ww
zBC@k(uJn!^L(+YIbW@<zF;LHD9yL>;yjldS(NQ~!FT-A<G5Mp~AO2(YL1(H)WhuK?
z@ncDspaQ2n$!4%n9+i(K2~iu@*=Bf9e<@IJ#Xe6+VW5Q21BZ{;e<`CjB2lxOk61C$
ztE|wo_CrGMOrz4!QB~>W4+zm`4X{utAzT&5kNPvJQTk;lg7N@Y^1IS4*n!qxXVNzA
zqXOuqFOFv>o9UTQfjdXPd=HCYPdjZf+IQZnW+r2{FJ3EK{;}Hjb!Gp+1+`BbSjVIx
zEMQt{g!2=BXC^~vu$jUd1BHp2pCzumPHavn5XfNBZkEX_X*Oih>-2U<c_$3#4PH{j
z=T|o(9?#k&xUK4@7=4&?(fk*SM<4m`!I+rNn-&kL3A2Lnii&LYvWAMyJlFq@np)q>
ze4b|S(l(PwWRopi{gCq8e-9mP=@uv6z4da@awYrLiR#gQu~Cs8(P7cJMxLe;dKc$h
zdQ~T>x%k=tSeJZ0CbTAW`_lP7K5;*;#M;99hc|#%oSjB=AYm#yB|}EEfVUh;67eQt
zoS}t7@u28=ne$|;*Do_g-1of{qzVbTi6fWq#C9c5y8C(y-)nN^TNWx5lJS4z7pSST
ziu&uc#P^pgjbU(opi&~yUGO;V<b)ox40DFNnX_3(%YaVZ)L;F4-oWOeo=byan0&W^
z#YFyOzlnBu39dj>WyJ8j?Q#XtvnCCyr;qCgTrZw>rPBJvYzl2pme`dv8~#Z1ShkMx
zEbTCS+4TL$`bc}b@}q<e_qMXv?3m55S_%Ht!JN8|=gGn-!^EwhkNw3RHXm)(tSxT`
zh^dLJh_MOnuj-vtow?2}4;uY#ar3&lV{4yxE?}eOvcH*n&fEX#-KTpCCS+g9W~K$2
z3;onib{ziwRQhvgq*yHTyx^ozOe#De{*3SNqf?IwrNmR7PYxCPsk5K{I&#e5U+tgD
zyt7Il)SuN?zUn*Y4^TJR?bbN>_c19(;ISw@3Zos1i&a+n-dD!W;8#}E-T6G-)svP~
zbDT@p=kO_&DMZ;#IYn72SmQ&knDRONo>@K`QK-;<_JrB2w>e>bz+=&&=}Ij{ZCIyY
z{VJ=tgd%?`rzWegDBuf|gJa^{Q?qE?jH*AsZHxl-zFq!B*IQcVe89<3R#H~#P%$bv
zDpAYmdOR2EPAOhLWf50;neF#{Bs_g`N<uk<`7=)CLZ1CLsZ07G`ix|o(q#<V&7eCn
zCLPb11<5be@>%D#RB7JVkqc5uQt&dIh^}ex_rIIVZK=NJtgy@5Ye2Ri`|#EWHZHc9
ztKEHhSC_@UGELq)t;HiYG^;tQ`_Zqy)s@X}{7!pqQ20yKoAl(hl>gG!nCo(Enh*yG
z_q(>8DxS74g}UV!+CKxT^Y)cf%o?6`*F8A=+WpWhnNdqyyYNrwGv}h==DRNLo8uFW
zX9pI4$Y`4#NoewEbsQxd+*|Lg)XDHa-dh&iyr)pk>uI=UGehMl_sQ@1_GbM>R{h>@
zIsN2y*7E1ETf}jxKB`jL;vYA(H_X;k*BPmcXunba^DB`0CLw;(yruB>VS2J%rKn;>
zD;KrI$<mj1dr#Ay=XS$hU3xBV+b|Nar?7`hW~8{Bu$|i2H?Gu7Q1x-+8!-<49S|MF
z9c(#&do*?Wcrr6xDt3^T%b4<|{|Kk$y_?+2mExBc9~o2%(NSWz(Q&!D@MLADvsAOD
zc-09)>In*%C>=&b4z*MTE10$@Gu$P;{qcjOJ91@Tb@s8`$g%qT^>gKe`wNW9lJRTF
z3~yG)M(#dkO>UETl2If*nw|9}|M=nRuYozkqc;ydluAdp;>Y<5$MZZ?rnEv7%yety
zIpkBbSc{{6UKIT)H!^c_sVvO?Fqbgou#n5{fkCLb>lb~t^u6auO2TR4JV)U}er3|D
zVXJk5R0+Xt`@zw%(Y^6FQ7z$@!ZyMod%r?3xg;yTRz!tw)zeFqd3trVOf7^KV#bFH
z&uh!O98n%HFlX*o?=2qEABwF92%{Kz7<8%s(tW!=NkRH}DC-=jT*@W1MAfih3J;$!
z88_fYJY6xV2&Ma7eSuRyl`VByPQf~<Em_}o-gJz&q45iguO$CV_>cQaS!6Du%r{~4
z@3-RCH|xdTHtMSbH*8brQYt_2eX#hjy;Q$E??U?+`)}Xhmi{)co`tf{V|}h4mu)a<
zFgd8+<FiKnj--sFeb~uuYdCq^PxtMU=TAF~c=h#s`mR3sP}HrtyURUVN($6ZES=X$
zu8=4#tsHD+7@qa(Y8W~#7`t~-F!gEo`?v2i+XSB`ZSOUwIt?DR8m5{wS%$Bn533%8
z>l=>8-EY!n=s(;!ER#%G(OxTM;Gs2Tw0t2$GZ(NR<h*9~=UZXEuqeIp-WEEly#zh&
zg23quR{PvF=>oDq158xrtw2KBz!1u;$vX50E{seVyE8}OJl4VV$6dT%f?TXaRlTsb
z=fv!p$|7)bB34+QMBE~MnI;<<ulV;4Uzlt*o7(AZVl9>uyx}-~#fRDDL)9xBE9wNa
zJtSm7#oa1=5&ZQ$e|ZT^MXKJ8-nS=?#q~rb$I_aUo3ina@IL3!<4@u*=b7L$GBGh`
z{xE4qVG?6PZ^mz7XWUzpxnw-A{5Q+B$GO6_+ZFxDnc@DR^RrN)AmU@vlN-msFflMo
zFk>)g@bmH3aiyqssr1OclP8ilF+XRQyn8*eckbcM1Ge5g(!6r>`=4+fpT72EOKzJo
zeD=g&HQS~aS3&9Kjr{KPmZp-VUmoGbUYpfA0@}aSXNs9~@8sMpx>v@UUz%5#+cwi~
zQrVPUsUG2+_MhZj<0?M?XxkZT>^w~&Zn5NJGvQd>00W%?{nK;{V#}s7hJSABF3WpP
zM`dgSuYb2ZPU!Xfe$j|Nc`ZDILT>&Jx{`b`b8Vf|Wkl5%s-e(#L!(Q_wHTed4S9db
z&igD1-)N5ir28pl$!@Xz<%X1D0;AiLD{-Taqt46u!>C6V_b7<D4s-~I#Y;CEM)ag6
zd0uE{_0@~yEY43Ip0RHBr@I*XPnAE;d-3Z`CtUpHcC#+su2-(a^x@oyR(tJts>-q6
z01c|=Tn*(v{GH3M|4AB27SdSN^&w3sLTMOdgfm~`%c6Uqh23LJgcgb)FROL^+I;je
zYqc_^M$mm$^e<NAG&h5O$~EMYst*?>TXX7@(MND85}P<t8>&zjQ0_Ue_Y<3lRF90>
zZ;-??F2CgH^|R2jQZc17PcX-`S~GcT8f(R1F=TPaQlT2Fil}B24m#PAdv<p2%hKP!
z-xf%h?k-ICO?8^}@psS;gwORaCC|2TNs~}h5Kzruw<Yl)e@1bKVv74zvrK+c!&iHr
zZ(2P;=HE;5|MVZ6hO7LkGaXYFS>OEkPxpiv&q3?~`9jj9=h`OejDilsjGs}y{otKp
z>yKUsZZS3QE%b-Sh1~Sr8CMS0+60dqJ*Oh3bUQ+&clf_g|FJ#XL=`q<gjFtzls==i
zoVf51IW&v?s@gY@$YojaXEK!7s=o5YDVbvebu;~!WWSN~v~ybYlVFyR-rMZie~L+K
z)12JoRsJ5Ww7)wUE%Qn;^Xm;scz1dG@rdZj{cZ_&K?!!UWOqp=zE8Y^x7)VMX1uF|
zt2+}+C!z@QA1$IKbte0iCfMP8Ow+lwE?OZpS?{ywuc^cTQK8O#|Cu^%v0Sd^%3M!w
zSTDz8y;F0nvX`+$f7;&BtJ4iLutqC2+r2Y?=aTAwtZgZHIq`$|TW~we-p^S)3wPg`
z0Qx4$I(7L^Ils`P@q?L(X-rV9Oo2PBkrBM}FXdSZ<JZ5C{3E*=$)_-+wpgTNt-6oq
zhSx~d74F=tW#-RE&7Wp@95LLpWNPKSRPUq6+>;p1p+a6T_|1Ijh%<w8p)8{;b2Mjk
zY|Ku?USve1(&c)?N&O429B&J6?34MEq~jTUa{Pp_+E9fssaFP+2Na29sg!LjG97mR
z&9luYPrbdYjd}b;d%(V_{9Fd}h#oCc{lP0SR}aG{TjLT<N@_`2ikjRbE5p|u{L<N`
zB>i~N+gb=;miAb(C#$3!DZGEg=p+zeUTmLa6*9^`?kfCSc#KiL;Xa*<RJ6zAechWc
zy;}Ap<^2~P?j_?KQ<GDR%TyD#C~4<Wgz_t~DKHPMD*4Udjr&O7maOH>vX$o$X|QH{
zdhxB+-n7Cbqw~h4tJ7tF*k#UX!uikoe_0Qb`xS?e-{+4H*sUHA5%LMWeeNNY?!aCb
z@sVgU>N%Oiwin5%TAf{EQ}wNbV$aM&)b?zl)u#-lw#ftAdG`_8^y<Ndo7+TwuTu<C
ze552UyN~TQR95Zx40=DE&6HlMoXrVy3(tHa+0~r4n#vh5UH&<p-)Qk_@!R4_5;}(k
z2S=%3DMe{wo4J2{fcE8k{Y1k(y?(u>Cc&10n&(vvRT*v5t&%m&^(J-B_6s9D1cvXo
z9t>uC{#r$)?vbKUJhYm@x3!wXs{5{lH!eQm5aC^wVhN$DUV7>2InJ&A;GxAv&0+^?
z>xW99p@h*$R2c()T|A}UesrG~8>Nnt7wH)s#Y5?$k>E3y6i+R^cpZZF8C?+7P85jo
zT8?h>({a%cCfcZbX*4vJ=GdrUlrnRQ;_<^@)C<eA%}Emqgr8h7P&ZKK!mmxAf6}%a
zOSS*7NEn8T`{Bdre)RkS@x(R?)r`80$%DzF)<N|p3xm>_fc+^4Lqs69Sr&@oi!{3C
zJB+)>mrq1G*wi|%t}N~Z5t9VrU6;n9!RRDcV;=32ipM*?*KNjxMiD{sk1E$!;iTr@
z__m)}mNbdl>^8w(08fC(`O|gcY3Y;iiI?*d=VZklgp${nZx4;D`cvyg<0%rFg${MC
znAM`<=6Z2LNEIn^U-5pXHg@B&r7mwxDM*=d7ksgBa2CBpf?<w>efKr<U&afT3r3+T
zktTGMu?QO81qvlvKYF#B85W=0i9$u+$sW=QFlyszHUaLccfCz2v{v(aWlmWc?$xzX
zVLLN>Qso$+ez;D`dafuGJ{j@{4fQ^a8iis){U<M@<(0NE<*B9FH-ohkp1>f>%@X<3
zK^N`LPx<yn!HvelY2A^E(hpCn=Eg^Y?WmGIW{oxl7S*$41qUmWk-Sd8kR3n6mfBm>
z*BN@)={wLD^!MfDEwq2%zom<zlVHgF|9^Jri`D4^nIhtTVi@B{ZwF9a2+fq1meM*2
zr(wN+|6bA7*7j7RSPLKZh%5P*Ip0`n<$Fgi_!pX7$)){^F4or8%EQCM`D<%y2|`o?
z0s_^Ijg7|vMhY$s23Z9KPqYjT4b}AYPBhpPDbR19wCAG&qa&%pnIec;!_t|Ga`Cfv
zQ}JUIYyLV33!>gX(a{kic_pvUNm=^7ci}%bcXtaPA0OM((^DEOEG#!aKflI`3NAM{
zx2)1qe8E&gniwq6^vi)ipW3W=s9*P)7gbb1hm&!47x-+-``NU5{!D1%?%lg;`uZjH
z<P;RzR1_4iBBP@6Z{ECln}b7>gM%X%H%wMEv5zzN*D5!f`10OKG3hHdbm@^RE^gEt
z%|kpgc?o$uF&SSY8Wbn07WE^zcR{42xcDOp4u&NS4Gj+;UkM*Szg!~wqm@Ugf))by
zqa==81qB6anxzw0IU2>}+(xbPs;WdTuCDQ^sT={9=iZBZ%Y&t^uCBv)`1pFTy`+>;
zNgRoN39!&DlotjQX1goO#WoX7rYNKFqC$q`Yd&t^2ugp~OB@?jj&Ut0rJ|zZ%lNqd
zc%!?WM~&ro>$<u+>+#w<wY9ZHkIq8gBquM7)mSM%eAu<n8`n+DC`q1|pKtRvIhnuS
zU<)7hpM`~mr<&%*Hu{%*L0*~LLK>sE^Xoe(;iA$~&%e7~l1WKPo9|Q#6ic6!vz6<A
zG@Te58?twBFtM<}6ij{OJ|g-b6A9D3dz+6sDpgfgDcRZC`Tn|iQ^Y7X={$MjaiiS<
zb%esX9s7{vK?u1=@Ugf%svIQ@t9L|k!AJMNYGtXYs64`n=vOw!KZX<+-|6PnmV5Gq
za%-k7?#0p8D^pX`lAphRjoAx|>D*14CdI+{1M6iBa$6w#j2+*pO2TMK*sk>SX_Kdg
zMSg00e0-kY*&z)V7gt)H!$gi=jpdIYKe9y4T9_!Kc2|a2C))xTKRM1U&9uDGIXpeE
zbH@sCE^lr=XA6ufx{;?uf}w13D?*3>?bxYdGJ`Lr3_o4f%G<{$$8~vt&ePMAnubOr
zJ<jXlvu6y?r<-3rOy=6HG;AtB%OYs^4w81FX{Y#|7O6yXKze6G-Y=i1J*LBW-;9S^
zLV+c|I59Et%iv(#pJL5hx_Wx*>2b%z8RFi-sX~rl2h+uLGG4!KH|0y=mS-9IFJ74(
zmx&>7BBMwN*0V+?iee-R=a*-R-{%t$NIKe{$=ux9su(MHMEmn&1q&M~E-5Lg)5WQK
zU$t3pXm@uv{MJY1Y&9?Hb^#P=BrEA>PX#=&?6rDS<3F$FIoNnf*!ba#(}Q1Y(=APn
zDJeIG$08V+SXt4n2GZgc6&3&S^Yh!diCz$74ocz7iU&R@*}E?909C4{V1T-){rFJ{
zH>@)jPK@ke{ZHKT_BJs(I(kXXb@H!+gS~L!7U3Wk|NHMh70M|0mgZ((p+GWJNzs53
z$;Tja4_WOZw4HgEhD3Q5bz(UE-9R+-T3=t^weRvgp93`Y^&|1AxMp|ex)yP9aqo+!
zGu$D;sY8p%7NwQ(#fJ-OVfCo+S1&Z1XaQc{>=-(cgo#g%M()rMN?fl$$jiz?DaA1)
zT^{@~>iqD5FG!i~RFfrs14|?(R!ugqitMX0ZM(FC!={Z!@o$$OSu$%O*u<9i?M9;4
z3_|g|c4pCt7{qlcZrs47iFvE>>{%;rJ1@!?p6zoo6Ffh=LxaH<UA69Hsb-<-&+Dv;
zPVjtRtUczNpx^Z5KTNLj+@6kv1=;<yuEhzGCW(Bnw~doCz!H{Tw0<9LfB5Im_m#!P
zHUiG`@=NfH0?@#U1{8j?!m;5H6H{%Ee|$*5R1AA|Gw}B7k1MZ4Bgj2+D)@f?{+%YD
zJ7hUNI%=(&D)^`$u2Ss)?t@p|rt%63Ccg?EE$Zp%<&>0^2=JxYiv?;RE2f3Vb$`?(
zG_~2{bCB>jO*md5Hl55}-PDw&&VGzVIN-7wD@IX_g#_nGh}$nRcNAP(!?~`7-6uA-
zw&Rc9@dSz3kMa;28cs3R?R9p_8npS-+t}Ff+`k{1oJ>_#ULG)dY4>ZY$x~fd7Zy(p
zMdMi~;d@LnHa6zu;qfvfgW>sPJ(``J-F@pHvn{=^UcCx}%l7U2_nC>eDJiceCk^Tw
z8(AbI==1aQt!G*<JYT4~>#3_>Kin8&9cys4`l!O*WTdXnOZE4SNU-dh7B<sb%a*>r
zejjwzUY!bqF-czDcz%cRT1NffP>5LE+}w1+PAJ)Il3S{2fpKxfhg(x;U3|X_s;YRR
zX@!UiA7}bIPW&#`<b6IVoL2~P$y;ut*nrEE<&d}<?>)=U-Q9jpPYn#{V0*5iggv*?
z=Fd*Qw6~*VWMtm=_4RFZM^QCFtIt^8_3}jX(oByj%Di7pB>nrLE$S4Wei)_`J3b}n
ztjG2=y{)ZOD|&H#JvFr6-sl_rJQiQcyEns$8GFj~YGzkgU-iV$UhNpneEs%~piniv
zGfO6f{F8+LIW<fq<7(Z=iGfV1#|q*}dD+=P%yKV_2<e1hyPhBK5^?BMh{G=JrVTC+
zqB*@?^Oe7l(ckzSmq%nw65iEURb72z2N&Xrv$OLggM^Qo#&0y^tIG>Gw$FM0B~CZ^
z&9(>W)>>aLDY3P@;di{l>~pY&3G>hE#fycFv8#Yg1}T4WB6`tKldhK?eSNs_eV;cc
zKFvXyV`F2N8MQH>UMD4mWk|f3|NM$<=inf$txbx{urU;NSy)7*qqi3udh8SNt>wcT
z6ck~w_AK}H5o$?a;b(3B<)d5M+i~^v!sJv`9M8qv*T@?^w=W0w(nQ_wnwr}B#B4+7
zZ}mIt{QjLVii-QCF6WcU%I0P|cp$mnSo+<)K`B;#{=JaOLS4?D67AC2`T1*b_3THh
z&|Dhmpo(_(_T>EiB~i1-y9+x<N8xI>wG51!y{cJy2c@o}N6Md?wFja_#K!vH+U`rd
z#q07{IW#N`4aH?pA6Q}7lw;WB@$SA2=`*O94tuG{moKqSkGA8QJhxr`l<EEYIyosG
z+`m|GZH3U~IPn+_+Ot1~JBn49PSvCT?LBzx)|S4Hc7JMp{rrjt!frjz$a0vdQ_~4J
zGLm`ph!Ac<cuWi-z>e!AB!L|v*bDIIotP(A!K2idpFhi^r1kY_Iy*agU{#!kjpQ&K
z6xGy7mIgE97W<P~@82g+Nl5`vq^ztgt))diQl=N;u{mz?_e;F;fB(sNc?pZUtz_MP
zZuDVrcGg%WP58Q)$A+|}CA-JQX!e)N++6fqw+cNa37}(S>r_5_-FJCKQ2zI?`I|Ry
zq}fPKpcz^Zmr&F_pTdh*&bxh#;t9C)HMg=d>v~BDr`&B6aB<M_XYXhxpf`qAh=h{z
zrPS3q+0f9CZj;Bo{euH_J-y<UajAeyaSaU(r{w{9l(d`M{b|mxHRgS!US3|a;~(v)
zMO@e{zrV+nY_oj+&T25jWc6o$RZWfD_H@g2M#i{e%|g@PMd}fek-_ot*RNf>#+0nt
z_Mo(}Q55cI*yyNkIehat%+Jk5C*f7psd{>hngevXnN;rN{zo;RKF!ox4Kn<K0b=d#
z?X8~vUp5T)8rME0Ma51iV`%kQ$^BuKmE7Xu;v_e26xR>F<29RISU?X52)GY;4Q66U
zQ<E5+-cXf^oVeeqmh%kkeAo0eLkJdOunKz@)b5WQ1$+W(9%<(`?y+U4fVr(LA|)lI
z{ncOC#l^*u4sZ|Q_H@GSLi<g=6B&soEG8CEwbI?w1BelMU}TqrLqaGF4*?V=a~t*K
zC`A3JHd7*?7bTaJl-!n3)YhiBJYDDhmMTO{L_`D|)CCR1X=9WZ6_}iyoTJ1dDanA2
zO(YMk>aUB4shQajbW3G6((}{xN@@w8`(EM<Gy=95l9_SQ(FEQ8K8G8x8eEq<CnxD(
zG%3Mm^BT9KkOv0*sRVE<At6EXMC>9S#>^~~C#}$P>x+}+%tz(r<({q$ljf-BT2`!D
zWFkGPzTD*>YeCc!raQCff9u@jzOLw=LHwbrs=fT_C&~Iv*pI4@9~I!z(b3UOkB!vY
zX#QPXyi*}$KdQDX5z-Nuo}NAryr41X=~F{PdO(aon9_;d-QBxaUOamAsQaSTJkv4G
zeA!7jvJ1=6ZGD6g8ftr~P9+KSlC7zxwm<y4Jy2rEhIPA(rpE%%yM}@m&ZwoMlMBE*
zax*qIw%%#3Q!Fk%DGBqHd@!5@2T}PKb3WyK4V3iqKzg;)oGi3|xyO%*;iP1(t#8AP
z&4T*C$H(tpa9jO}i9q$erSCKSr|eWH_|=7_@2UTr2ZF$BfIj%`cx!y0n4q1Wp4JDj
zbB~hynQsML)0czGkFj5$jxn-FaLem&$UE>axHKr$8$92bY;YBuZg4Fepmawe7eGT(
zGd?kKZ(tJ>6BCDk03)s!J+2p^?}*q$rnvVt07l&h-1MwF)t#q3sUvO<8=6W=*w3Fo
z7xp{7ubM6z1|7<8zZF1Q%SFqoMAom>qOvmI<xzKi{c-FgYy<;!cZC!0?##(eHhB_L
zaX-UAxowPIhX?z-`m1nmZ4D2axw!W~3@R=IWKYmg0N8ZvotS0i<l@uPqUFMgpk;05
z4r=S@P%ZSt085zb3a|IS5H&C~lsXw#D>rKMhekB}?HzAdYPab{*PN3F8c&WWRW=Q@
zMO*y14&yQt9%`Fh#hBC8%ZsxO^<2ebJKK>>)olNZ(+()98mmD?6BFjZ_j?I20P&=x
zq>wB5?AbH;ST#E0f$!hDTV5Q^ZeCmrSeBIgUGD#Se7q1RrKYWosif2!H$4akK+GVn
zw*M?m#8pxKivutdTiZx_F%M{G%(re~CvzG4Z1YA(NB=0%=Gd5OqGE~10dU~D^sQsN
z?TRRC2|YM9mA1}th6uL1N|&?N<`<Tj=a!auC6vv(ckkL^ktnB~SsA!m0sHS7K7A5W
z&6JEeKllBz=mHZ94~~DE;JmbyngFXnB_$^XKs=4G)2td+$ZncyAvb1wfhcYEBy2}(
z(#yuiQ#Y)T_+Pn7aeXkF%e?oNhOQ)d9~kDtfQR`i$4QA?U+b|CH#asnvvYGpC^(*=
zP-$stJbtHcNO#G|$k;hN><PssGX^F;<uW`Xd2xQOrlAoGv)KQ`r}nY28;Q3b_W+=t
zot+JYR@pf<MKApbZM@!@6$Uy6ocQtSss9eOn3^lm1r!nTYl05rOhQ6b9UUE!oA5lh
z@7>dOJ8NoakYOY3fDe@ZZtV}~URYE#$E-Kj>)&78=H_M+YU<;Tix@^J24E6SZf>E8
ziDYlN3?pIKwFvP(HY|YELwf+2Ro`)Vct~Vgt=oW742sUW)k=EO#oVfZ&6V6VGcZtL
zqO6Q_w7Ky0Yf(`V4z%p5s;XmS6R(R?fe$q`LvS90MD?Zjq<k{N!oq;2ha@EpznGc<
z3iIX5m%y;FZn5Rgt5mJK-M<PSXBQXaf<jjLb$7lSpPHIFuxn15D>=8SilnEfhp{C9
zNLyrNq_LS9I(y=Y_E{MRDH+*ya&j$b5=jHgd*SHH1)^lx2FPK(6b$duD=jDxG++Fh
z^bKxnd>d<Ukp&RaBus2<oxa6?oA8(L(Qt|e<Zokt(4yQmBDAd5P4+)sEfmBiqBH*J
zF!7e$J@}YN|I_nwLGv#p`j(ajejXl&<gert@c4W(j<5ZFlya;wV!-8D86U6SFLikw
za&~w}2?OMX>gwuul76CXFuDXY2N}_s)@!8Xe?QIZR`n$c=`+W&v$fqyk$B;;00+$1
zww%Qq%ryO{NS!qrs1R3TAI(iRHWlbDiGAiDCQ#;?7bZE=%=bLzHASn&HrhagIe1d}
z?7KIAHJ%K~@4l~JWsQxQr0(3glRUV5g#KFAojvC{^6PT<Q&g6=39!sw=<2?k-WaP%
zTG|%~R&yU8AEy>}Vw!4im)?e^n2Q!+!KX)uTD$e-)*8l7(_5G2H<J4$ra_RX`JO7|
z8Xf(`To*%KXYub}<Biekb1269l9@A%?XD&K*MGCZ7ZD0Pdi33B)$KI<=EJwt+)wMG
zJLa5VV@W>W+VK*HnfOLEcZgtnvVs2@S8`iI|Kd^cfPz|7?I<pa2c|?XC+H7Q!UGPI
z^}NI0IKjtp8IpdHyk<Q(|MvE_|DBw7p#BvP$g73aj=pjxz*^8!Q+qvjda$12NcoQm
zN48;QeckMMXKufw<nFJ}pFj5@qK~<;VGFeH1FGcyMFt*T-rebHGweSjBX8HlF=T!x
zU=uU^?_oZC_@Epl&4U&gv8M7lP7d$I#qZ$nmYM5Ax#9jWRH77f)zia|ukoc20H#MS
z^@E2G)j@zdZq3WX0PSUV@8q>I8%b0*U^?WVQQiNiS_K(!VaF(<r>i3WgdZ521qJNT
zWQ6I65XB276`W)Dk*KKXk6*t+Dk`?Dk~40uy@W?ld4K;uul12~x*+Kv6w+A3DG`hz
z<cFtL7>Rw8jXnpqmeSHF@9+w_yBr)yo%~%|Vu9ip5fS+^F!02H`|jOq0FdhH1cBsd
z=jUV6)6>HtSlighz!V_BLcdQ#2ufgN=f#q2;V<UIKJu`u%_w=6Ao!7HlGf9^fk<r6
zp2hzA=kg{g3D6fE1qB7Pl(1K?aA^eXaX?t;Ui^Nb7(;XCf`zlh@=t}~PiPd{k@7in
zC{;DstxIK-N~w2rL{?&Pz3VTa_Y$r86vnFE{tP7^|Mu-mz|>3v0u;bQZ{NKe42luW
zeQT7NnHe=LZLUlR793U(d{=Z#48(sntEgf8L%Z%?1Qd7s_HAhy88ndE5L}?Csj2()
zY1hC25wtMiOhM3EZs~-wwpJpi3l~B*TdlqZ6a<{WP&nNq<aCYu=A3eXvzQ<DG6q!j
z+1N|P!czmCMg*9vOTWClye#N9(8Zx$h0T|Sg<%2=+n?4b{;GI4iA79|_Qs7H%8wr_
z0X*X4<J*A)0A`H3r(Y`#64;MAho_?x6N#o*=q>&iG(Z-p#6gfKmS$Q(V@gKWkUhE0
z@;UkVRiF8m5fC^#fXaV4Bes>fl38I(Kp4^?{|A%49Ucm5PYD>wP_wt|yZ7%$nihTo
z)`VmB+F!YzkeC>skPr-Pxbx>vQW!l-XNQ|Z@a?c6n)KTFeTy!@iC$eDFA#&$XCZ}3
zhWhy}sWGaZOcT|u-)~uSYh&V5+!P2<C3{7A@Qt(32@q%isu(T^G4~y(>5zv4+0fX*
zfe>I_iP^}1rq$GdkCh)hkbUp~4>)EtT$1{xCJrt_TERTgf(Jm0x&V%2$YwifySpFo
zmF$sxj3W0K{=DQQ96vHLk`5#6^U%mhfoR;<+gx0VDk{-Aui^3u3k$ao4P6HT5-4t-
zXpRPmBTBx$;#-pqAwb+@A3nrqU|?|a^b9X8<@hq=vgv)WMggpj`%8a+6ex;P=ta=^
z)y0%ebR-Jsh?ZRdHhcrT+Me@kRcl$@2ZR-2*Cm31G?5TsEZK0nPEJmNF!4A!Ig4To
zKL7%U`TO$t*lV)o1r-1i<hg&eyzo3eJ4+n#y+?u<MlI#v%p)mzSuM@9gRZ9H&OSd8
z-&vtQ{z13wA>8Xf?|IFzL_{uV#ex2V1}6i&39jkf>MAZs8Zde_B>7re6O`E^Vq&_7
zOLd$VdI;a8rsh8V^n7LfBZr9K6(KC*?Y*b$<26=~U#Z>RzxMh8@+Gf3D@6T4R>T%`
zoc^{2zk1T*kFe6&FY&Cvfk7Y-0wo6qy0N39(Kc4ousht6tMfhLif1j6fVq*qlknM>
zhNiKqaPk1ei?`o1rHpj7wGYSwIkc9UTN&=4?gpwB4w}@Awb4uZzH@MNeC$q_uVG*i
z-F9_Jd;R)#C{x+WXDzdfi<mAMZ7zT^JCZnb0L^29@J&E-A4lq9p9~1g@X(vDa2I)f
zkDcJwEpqdvY&?c5U=&X7v8V`*z6nOhDV>-{^sg)#^pd^X2(kyF$Hc;N4JPK!&W>~(
zg9HGYto`NqKc4U$0J0FUJU>5=s4dVNI^ewb8-25v2Qza6t}cUr{`@%wbDSUb1;)*}
z&|gCpZ)ecO8-P=P#3v@Usu{B{+57Dc=Rf+<jw+U33=8;y8%R4q(wHjKZA*%Z+E4bD
zotM7d0FGnw<ux-xZ@*yA4uYD}^&?vj^KqtR%M*3=Au99F%^J*Mh9axrrPzUD_DS#4
zbNZ-SdC5&sfkt7t0J90t^gqQ#Lqq%fy(Ob>U_en`9wR3=cW!CvC7d@1F|XEi-QUZz
zbU=-S!m}Nn__i{ln4!aS%i%Ts<F%|A;{}2%cy@6#b3-e<xHMFjnT3Uggn<EJS3p=%
zpl#g5fAiZFAh5c+y0FV%oKbtho>=-QNx#$AZBcRHngH<dS%hcO#Jm<n1u7!{^-Lwa
zCKq0-YTaspmVyL$cr1lAe$t?@fJPR~subJa(Se4JMIa3=q&QaLH!rYXkU@IlS(RSD
zd4otuCY_<UKmPnF6xB~>P3}jim%6;Xe4W~DH%v8UxTL?J?ilJgDLE`Vf-yw_9kbuk
zxOxaaiQx0e2>8w%5LIw+Z~~#L4_D*de4UsW5)pv|h#w0W@aMmMi6-{;D(+>XR&Z*=
zP!ab?@xlgBABqO#eCh6Ne9fj$>}#eWCGFgtX_FGkx_k?#&&tV30F*}#R54xvXDcf!
zYV=WRvI+_cqn{iZ5q1R%l<C(ucX;^ub48z|e{fw^?faU<@es~+N}BycaSaTqv&nZV
zOJnz*);V2VToeyzSb<zXzW%4O7c_B%UK22gQyXw4ujz*3!2s+A2IPEx?CiEVP5~9K
z1TIlgthN=Mh>JYbW^?4%uMd<^Hc(O1N_a1(Eah^C5)L;fl)!W-6n&VEJT$O@S&*-&
z?^~0AFd{vYe5*AaIw+l}8x9C#A)vu6eM>=SWo0cf8^%SNh_Ugk9Y8G->6^pe5uWj8
zAKjC&14F?dvGMZp(MS(-f!>aTi`xO%Ztm~jP$<eAAbm_xlO!|vAszplNNoWDFoIBE
ze<)a3+#IiSz^5tqk2CxT<5Gp)41nf0z%Nv&<~&id-7Dp&mgg=2gQ<iZ#y_t@vl-UA
zt!-!+1J@mqkX8V}-DprzTl#*3YIk?{oq!$XOCoyxZ7PgLr@3qFs%g5<w6zzpm|m@k
z%g3Bv=;#T3wBk!i?&|7lFl=<o7RAq3O%o2v47j|pxVWfWZHfu1#)+Kes~4B&B1mrr
zbRMKy*wx-X+w@3)g9OJ3_`Bn?dNy9(>ws=~1O@#osTOt@dc8pL+~414N_rsG&<1}=
zhCR{GDfZygrzz;(0B#O!4bTAtL0<#~qw2-cbNlJ$8!<Ej!TI?&hlg&P+1TJh8#o0(
z5&nQJVS%Z?bp$uB>d(D$xDGKufNb2iCR5fp-+05MRg7bZ0o4lJRw^i!a}(C7!3>G0
z6n-mNHqs!)+&QRxq_v1kNVN3_vjG2j2Qp|+^o_koaWyWB4?@GkbD{RP?-}#k{A7dP
zM*xHD^@IG($r-qf9hNmx^*93)6Uey(0s>jgPxHBjxv_B|$i7)ndN_oH3NT7Q6+{7E
zEXh^x92t314*$o#-Jc4=L}fN5wB`a)O+O{o^b)ZRUCxmhkZ>zN9)pu(CdaFGTh+k8
zz{rAM9<8w=2KnwtjvtW0T(XgW2goiwo?8YRGi{7ZOG_aCUvZt;{mjD!G0JYS8bDbf
zH0Ng52_X51=lV{sT<}O|rlGNM9&C@5(P~!EePe(8P>YafDKS&efquLO6jU4>BU))Q
zXuF=Ur-W~jws5dE+zbPDq~Dp?acKup1%`5!hG4QYw*Ex=A=KQ=>R0fKm4L~But)xB
zs@@r$RWVu`&?PTunB-Jf0o!IEm_o0^XJlkVRI=N5?x3mFjGQ%l?}7do0(&wy-SPru
ztG@vq=*hV+G+&>iEkcl%zom(g0dPVEf?a`Vs)%4W+Yth5Ahw^V+e|-)GpP@_l6>&+
zDqv&~H0$}z>CAv_ZV{0i0O6EoTK%e@Pl-l!&vTC-ZvSzBTe&jTBm^Z~1ziQv5yU)+
zqA2faOmYhgQ)g#qZyU6^ufH`l3JMAWExXIn0;}i$%L0IW@3i>fyUQ%h(@q!z<W@4~
z=H|X`0a|LBnq9A%<(!UpOvJ%}+1lDd;Mh&QB0;wmwHRpV>i{*pQ0BZ?c;K40^uWGy
z2@C5sNvcYMF^N3B$;rP(93rBggqsg<ry472YLd0Kw(7R{2vFYB4+XP}8PF>r<;c#<
z*$#A0{aPGo`t2~avMVd&{!3(+`9G>1aK4L8$z>4Hc6o{qTmjTZY*d+H6D3G;!X6vc
zu%$7W_>|J@iJ&gbfu4j4gx+ETf~4+8TME?-aa_Oz7+6@cpoKIx(trU7QgG+ma4E0P
zzV*g*3oVq7=3gLUiW7AX6bjdi?rcDB2vT`c^KWV5tQ0J`H+M9Rt*pYKS!Ojh>hA_E
zXii)@K=-M4T_!>l3g~k4@Oh)Heqv>1Wlp>E3J?L7;iO#nng0+F(G&4)SkRru^FQTJ
z!(rmj15kqD)BbO<pP2+l4Z0cV<>w%cB5hbjMMbhv>h2918dJEVNJ9$_4(2iG#2}{}
zX-m-o(<k=^HFeQd+x&B7_l(n$X^I5Vo`~<3y<E?lbsblJWFOczhk&LGU43qSJqmR3
zIRFh(%@Y@LZ#ngX0qDue$)O{PZKk9j;t3$|5LFd$<qs-O4k&y;b~->Kd7YXX_4~IL
z$oN?~IoG(KH6ybUIW`!=vT!coL9MQ?!WBUVUbWwuheEX<E5Igb%;D+j^uQ<)Z_3=l
zg8Al6%s|tD=l7paQp21GYiJMwnnErG;`&hjLn;MNUt8O|7}wB{PS8Q=AS-*V-hj*h
zWRVIIV9d8~D-T&*6+1YRy^=@H8U(Rmc(SgqU-6)%6rm5nhG)TT$;)Fyh!W^uv%6ki
zr~7w6h#AWJj||*(S(bQXfD4Gg0H3V#=n-uC>-2QOEX$Y!F!Qs)Tm?h_c;#{p5lHDI
ze8|DA-ud^h6Kc0OcE9UUx@eN1`<j*+QMfC<^d_+iv*g3XHPiuhV%MAjoq+9|xrpnm
zYuf4oyYrX@AUOgsLS#X(6Sb7CscBLVgZ>T5sE&>fO2BXh8Rq9Fd&t;^&6$JCzU}r2
z5+B*Hp%A=4dbO;qtlE<&SRnr+t%04LUANhb7aW`)uwA3$<19=}DCmyc8&YCoXX!Ey
zZld%cMj=W7!mleTh(KBE_7F^s0pr$_p$qg(W@cvKHa%c8&TVeS#NAt`rKLR^2){!U
z^AhmAzsJM`#7CIpm8*<9u61XVrKn&PYvE-T{Fs7d12~g#snGH8@Ls=u9hi_n+HF@>
zT#VSP1UL9FfRR?!)%iP00W&+!xfsR-Iu9sB_S5sJD(fK@c_k%eN*~y627|QY<Kf}4
zfZ&wflk))-o0e6{V`Y=Vmo(vBClmes{XUoHCkM7KlP=DV%(^2f5X<2u!3|mWG*7Tl
zO{SZ@>wQo7?hDvm3T$j_@Yw#ot&%B8Px=Z&oPii5#&^QbIrGcUT740&_~z|f<SJ8(
zy4^-t6!M9~CEBBP4z$4GuQM>j{;4!tfQm(05e%}OflF_3hJXM5k^jNGhH!a=w>E=B
zmy3Bi6F0ZA649T`jTAE+#IDlz!@^&XwK*Gb7|fKq+NcZICPsn3RYJ|oP5Nr*)ct$A
zHJmj9p<wTTq=|#79tI5nIbnXQ0SvXhxjW#xfhH^uEgB#Lpz*_@<)h+@;hS)-qb)Cl
zI=i~&V1Ud7T+#cT?q`dR5R=i+eEl{s@cas<gyFTISu2=kxAHhLu0hlN2J)F7c$u6f
zHRrcM`KRVH#{siACSA;Pq#=jscP*a4{rdpfD^?)gRM7*C+r-We9|&}PL&F?2Auph=
zK=q)3L;#^d`WD>$W5_yy`3CAI;^E5OCP&I>XSU<Zw{M}4kvhM)=rFCGrj^;;*ocOQ
zn}f!JvW<-svK!fuiW6D+nU9Yw0mP%)=ToP-N3PD!9Z<1OM_Y!dc7Qn)=x9<OHyt2#
zg*bKQ=4>UUrSNsHpp}}!jX|N{_U9E8%!93fh}VFckn5M0MptV)jE7jom;g#4VL>4M
z{T!2#w&<wgVpss#Z=vUO2*ww%8!?`&cXt0L_vI)Hv~Y<RhfZ+zXS^xj6f&=HbLw7G
zo)IhN4i&7ft;I^Zt&kM9s)W;k8w4FB8%zio9Z5L?27j#W>{!{@FaSl2wgpJRCxFz3
zCnhFVX3#*2;sKnGxE=7}q1oBYc^Y?~l<A@og`+=y{1^Z*HZn$%k|?0LfftJf6`3s;
zj#Mwy0Z7x*P$WN~(|YQ6AZ|Wl0+#A<BNV*0mK@mr>EIyXRCEwr<l6i%B*(r2XOU2h
zrVfJ1*zx%@1_*UdE-t5V0iS*_$MwHB&@pKBy#a2-_xA!_A1wM&zv;NFN6K#8zkfdq
zWNc8~5M79pk}^_n0>Gg&$YA>$V`P9%o!s5SqN4DT`2hO;W#PrJHY^c52NaT7fQLb*
zE$~yV-qS5$cbAuEj<KIU9Zf=maYJDj4`?y|?$<26{af?t)3cp0e5z4EwmG8xp0~*H
zcmd9_v9U1$E*N4dU58wei;D{rIi87`*<J@R3*1%!O+lb(Q4_qJ_efEB3BnI3>}^6#
z6Cf3+K?a1DHZ^WQfGfElY7ReM8N=0ekMSQfBJKN1A}Db?-Sij+MB;;dF97ZL1q9lB
zZq~v@Sy^2T`fkaAMb|1(kX3i2lyr8qZPu4?6Tv_8-BIh^KG>l5t-v(N2W<n}DP&E&
zB$oV;u@F6~yYUhX=^CkFiITfW{{UFlH8Mg8o?#J{<1>uid^k}s=c4E5O*h6rmOd*x
zV<0070py_rb6@0|m#jO3_LE9QGtDC0sP4$IM)%T@)cE$24d9j3Vji3zREEJB4xfeb
z;mpshxQT)_3^R#@oE$?;tjX~icUFZR=*}>yY@kmu-i}v3yhfsy{-1Wd=j3)AC}j)D
zoO-6fDvgpD%5(ufz?Pc=h#9Ri=~7Y>B*Rcgyk$tRbO52<fkaw;eZB9{81dH<g(yl}
zmxi=MXd(=z)xvbrQzDPm!-}?y)aXGUCvxAOo&qK_clUxBq}>0BG~nYNZqE?Iz$jt8
z9;#9G=~HhIIyMQ|>cBm7v$6u$lxK#&rSPwUK~`&AGxoH2Ag4sx<SKT>?R4WMA+68L
z(9oiN8wa@SvPWA}$ixqQ`EsN*UmQ0_5IC|i^eyXO1%&74=R1(4P@`XMg4`j;Qza!U
zRG_++mAb;+smQ!{*q}5+?xS0MagmOgPB;*%lo`tM!0*B<_?Qwxj*#?`0MVY;eeE|f
zS4Zhx*i}%VRzNB;WFzepL2(xk<UN3ONz(99N2k6x+?eyXrcu>qO6(({ql*U8Zw&f&
z-g-Kd?JGzV85kHKJOn39R#;3-6V?P;LpZ29OAy97Rc1?YLM3TgX;1*0kQ5E?Y7hYP
z4+}(=yWU06C{4kV04J#(Mys*8xx71Du-Y9+nIdTiXalfy#EguYqGHv*K7m54&T;SF
zFr4%Oi1e5ED1r6u66z#QajkhL;Ry&@jJl22+LRm_MZ7;~hDGCYB}ah>%dxb@j+5g7
zIM5haI?_r2gQ;t1$hzlko6dEH5j=f5AqcKS+v6H#Uy_up0!kZ5w($uHUM_$~K}QrW
z=bomY{O(-@LVO{E&<OyhC{~W-AlQJb7dROB+?XK7KE6r(f`W<)nvk5Xh6W!-`+uO2
ziD``5J*E{*^;?G`N`nW|NY5XE7=kH4tanlYlE9VVqkKaRxRewWFriS8m@G@YGE@BT
zvNVutAp(a5KQMiMth#~Y4+*Eos<aQ)I7CHhOiWCm%U<20I#PcE$*7g#QmQuSG4}$k
zKr*%b+g9(vGiHC72$P@(kfe6QpM6-vI}ulQKun0xU9#}|Aqc`JCnsJ&Jj9HQVDN(2
z4vE!VFb$wx*bCA^(n}4-Gr2P%At9^)419%ns;F)t!0>}?CB!5ECW3YdKLDsq%*`>#
z$jFe^2}mq5>Mp~!HkOd%w7ioOkH^+zaYD!%91}AkF0MBx3C?(+%Co&;tqL4<=sk`{
z`}=f_K*$7#^=zNQj6)hM2sycMd$oGiy|uNqLAURPxI}zLM(qB+8}P2%l=8d~h0D&K
z6Ps}rrUR2CsDBaCLH-BdEI@vQXMi8DKfvWdG*EE5LE)x|8U>u*{^JMaXDF*`YePX*
z03G=U;9s7UZ~FcU5dpw#89+}D2QHpuz+3?uVlenpgs=pBsMs>743A5=r17A7+H2D)
z*LiL~D|`BhC{@rw<HWnH7*GnbM&K!IH*Ycn3q`UFFsFy=oz3ps{>FiZ@5A3KIP6Se
z&UXWV6q4mCE8~Qq4=Y&a4Gj$-dWE#KNa)wuzk<5RvH4YSS3=>gHfRc=fDDmb5}ath
zsA~CLPR`KO)YR95%V(&FT+ui_mavNn>MGqbEAT*nYyroI%^U`Sv)XY+(tfJ(qbdc3
z1$)v1B#HaEw|8M6T@0}!K-WcF0_a<SnD4qX`|ioyymyZfI==FwM+!DJcVH#Bw{G16
z9URdwY%+}u6XWB9AS*NvLWFulM;S<Zz0k1t0023lwA9j-#$I<`5`vVQ4~@PF@NUHJ
z$qSA+AcahDb)VMRpRD+deolsaE2E-9@O-8<1_n+S%xTCt%QkszA||o6_=|Z5I6YWH
zH-J(kNP!S6P{@#IBaC2Re?_rHzX6W(BI1mcKi&UEscQLq5m(Da(0EkwFoHXvEehsU
z1>6Kf;}x8EHmC<nKdtY>^?$Ej`osi+6%bXq26|LcZ0;Knq@7OwSs1kVP=Gdv^hxlK
zV_@vbJ$;(G=Jn?8ojVX1BYq9-AT$&Mal8P|K_uYi-Hb>7Set!MNCDn_1_saLf9?fe
zL6fb9BP1jw<L`f|jOr~K$W?*MBPyuEzLyE&OjUVVS<!%o9ncl0{S|fl$@=)(yvy9)
zI7U|3B?yRNqM)UAK?VR&O0KZp)WOmZByj|Sdb?@$EYK4O%*iHQR{DoFH;W_u2L?nJ
zOa>KbS&6VlfTlVT@;R0$m*Rn3PWb9=Yp_@5Anjxi*eIJ18y~EO#|W(lj(clr+Xz7l
zh;j*14GcAa)eu;__4D8P1E>K7aCEqgS_vd1BoHVBT6S1$ED@Lnvd^D$v8%ib6meZL
zhGe5wZ?OQ(2QtTrx_d!`%T0kQB4-Nl-ElDG9Kj>10Zm-X(%~oU6f)2dApoFaaja(H
ze{7`4&O;PMRzrg{Ej=9xRn=M#1+Q7(m19pt<cfNiMZEcig`rlz7w3>h0Z-```nDu1
z3}7;Lm3CkqAWJzS8*gM}bO{)G>5KV?dvFD?@~W<cMquANz_TB<w6xT+Dy9H8MG@i;
z;9aXKwgt%k_a80`E2}e{1mH@93Jwem81rb^PMW7{0@?;;8zBJDNjf3l@uToD;|Il#
zTM$h$1DzTnM~xnv4`AcLBgKLw4dk9bVCl^t)O=ZceuWm^B_ahwk{{fpBx}KQa0ql;
zeMOL@pY}<X#spH@urL-F)4)&O@t9mY-Cqr1fAs$K*dKosjDUv^A08hcBb2?~eVr0X
z2!Ut>kRbsrgE6bH5F7pns!iv>fa*;m!qxTl+>#PJaAQ7HR#ZqzyJs}U){eGK0zO}_
z0;K4ooh`Nlmm0}gUcv>qZ}T&BP1qf}foGLjFA;K$k<$ekvfdy`<TU5^*RNllwkAao
zq3p?%CkRc0fJ||$_A;V}07>nIqR=*d?hT03%E}74?Ifteq5;k1_|8j<XljC<8u%r<
z;?8P_w`uKfPEf%j6rs$E;LxG7B7+$edId1K0Ec|(yzTx55+wlCAR&kghBcBLrWbX~
z0wcf$j5mZ%fOY!h)!rnae1s>w)q3(o5G|#CDOXwNoNCsk;Y=x-+JuUPBx~QV5@7Sn
z#3ydcZ|{P@SWu@g96*#gB+~ir9rga!6fM~;RnSy1@2t7Mg8&(%s)xWj1YOX6>;oo}
z&4Qu-B|HC$S4apuU9}f-OR>Oq?_3yM!ZiZy0{PB@VqMPI9MQ*y3ez7YD@)_!hlU_v
zOBB@&z+UJ&UKlc*;mHsl4tEn5+MX`BPshHJSi}qjP+=P1lHPy}1pz*%l^@Jt7qjs2
zkbvQ;)muU)Xg?ZQTYDdT3Jf>V^flp`ys|O^D5Fl890RE5n(2jHEZfGJJtoz<gP_hh
ztZZ$my1#W~NqT@7c`Ivcrr_#m^=2D@p#zNu@q{1{+}_(8PVPp*ob<r?a6=F5p!V)=
zOw9t7;-f<6uZu1KQn5iQcv^S+>V_HAV<&gp`9Fi(<m1;!;0r654R<r41C5-Xoryil
z5Z7B>j)uF#1?irhv+cG&>#jj3zLF!AMsXl7Lm(NHDI7sT!MvhU63}}_M@QRdW*9*b
zLnKFtD}eP$to{D-qzwczB>V}sOE{8DZ)i}bUrj|s96`aihyNBI3KVPk0P}Ds^cFf3
zwqs9B@dAeYwzXAqSg*AYfnrd)fG6cv<Es6lK=w9;G^rDCX$W?&T{LeVC^$Rw5&<BF
zpzpT~30g>VX({EX0P;eJVpbLtSagA~!E7*v(?#7&AS(2hX}PWqaw}4RDj0AH2x`IQ
zR9jox1e>%PBpbw-fFvdC?q`sld8`KLCR_bzA*&9&sq_z{(;8quLO5StU0q`sG!b!e
zO3)c0)}i2D%NW~XjJW2=Z}0DiLfUpXzLf?Nh~C}}8{m?}belS}4STPV{xrSf;YLRf
zDFUm+`Hgqhe-NPn5>)NAYg#n!vul(CIxW;vClD`Qr&(#l9;KoATVwCX9<S^K%2}GQ
z^EC(}_JZoaz9=sTobfXtQABvn&xpz#T+Ri{B<WgEJ7znWy1yy@8gBWm8E_rJf9j>E
zny>QPP0A=<uN`Bs(sRLl*Xli)L*AOXqgfyg8V6i0YY>847@kW12BfG28qF-&rC=ID
zlfMSLq_Z}EC;(g|J~J~87Lf~c<bhaEsA{1c;7V3W$?5FIMjvc=OgxRz8KIt$kvbzM
zr>cK~!)TnkRVd)+aEwpJ1I8=irXpI@>(?X@NFoOifSLNeK$KFw*Qvn(+%!aR0T`P#
zWDN?4Ma!v?vzwbdphzeZ&=a98SB^je@gs1Tov;1<jOai+Ga9ol&nW_Ka7A^074bi>
zuj6~H4wjKR!rx)5%XNNbL4hL_!I&=v0nTsyez5MEA>9#lN$jZZPGsC5RygYgPo+^?
z4=_p+Qqo`u;;YdwmrgZ%lR@(GD-~YY5~`$lKu+MNX#m)Ix=YK;f1Dw+`QU}Bii-;$
zsGyM$KFfWU-UM-eT;#El@G@i!l{wOnO#y-<z8wVjV-SB3G$+8Uc_4CuqVxkYUeNV(
zU@|=rYafAdF)uGKWGcuYc&1yjrxsH?dSzq=QAjo}u2>6GQ(5=7l^T%U1P2CMs%o*6
z-xU>rT4WMI{I&|1jL+~mi>(oaW02P}pj#qFQ?bx;3nMsR{}+p>{Yk{*cert*(QTCl
zLQ_kqNO-iHeD7BR0PVd5sA_Z9P8~ZC<WmH>9~2Z>!5#wHhTlbc-kr72LWoI)bhV8Q
z`)C>gJYXPNN~g?_2O(yN3x|$TlItq~KoTTV`H=6Hm06<r!{GJ~sc<Eq!7DWCHc}bz
zI>G;3pvtz(2kvhe=ONmQD4;(3D?tE|d8i3c(g611)iov(oYvE7a5tiIa&pEaPi5f6
z7{HU|AA8C0!XjS1I$7%VK0oF~ev=$;W&&P&;fHyYg=E&xUI4jQikb&C6M>#6NEyw0
z29#fM5QT?;gVH`cOaYi4>DfiG`*NJmnyCSEw?i8&iv2f?Nb&_*cj?ixn1}U>;H5>>
zy?f=_Fa!(ltUHh8<glFo>*ofu=gCQj3;6X2muvRs2e1#wq0O_7QPP(hM6FIZ@z!JB
zOsRlapd#G|h^GSuRQ~asBj^Gw(56r%R8-+bMUGF?)*zo+@3qSk_<n47q{8s*`wcJ{
zs%(c#h$%Ngr!oae_sjS17aNxVapK>++3#?GDRd0o8Vv<>rw5=?tH{yO4?s`fGNl+1
z9Sz=Q7<O(I1GtBnO;FN`3Sll45hY+CfUQwdJ+_grWt9zY+DY@LsEk-3H(KmrH!K5z
zU?A1KT)RC3w~GQS86=v8ydVO}9Y4o2*fJzL4p8qPit!UnGX#V>^!hypI|F7S${5}c
znVD=#fESdYS)ovn;L5xGcINAsFF3#@eI1R!evZtDAD=WbgcmUQkq<`rhhy6XR<-WO
zKeW!St|34VmIl%vy1%JJ+=!QO6xXt*E2c`*a@lMFpglQ;1#V1EPQLjkrwR`WkP`7)
zlQIGqL7N46oCRK|K;$@uAnyqf5#nJjH~1}$K{x`)i49S4wO@@berJL}55ODASOt|9
zx$n9)mdMK`&M=pbPfnNt#RE@_h=`De?|>5f0kE~(B^k_jq!!>kw+O&7Iq>)3bt8B;
zu@~`_&H1j=&_qJg7qBxTO~L)^h2io#A>kTWbBMPH(GxFM{Y97&)t29BkoJz`c57-N
zr6>*d5P-@^xQ6qfIYHyH{#|q(iA+Nu1^!P3Q7ACtd!TcH;Z^F@YBy5W0a1$`AcSBc
z0e$x8V?`M>c@P5Qkh8bv1nHVWa~txUG>B~inqhNG3#1OG$Bf{c;GRXn#mRv;{vcjy
z4P_0T9>lpSn_ujp_2I+oX2?(g0*Oed03Z<!8dOM#EFc0g#4e&?Sx}kRkgS@ww+I{=
zJ|NkuF?$1e(~VZpKCrOx7O0fY@NT66)I1E7tCe-k-}}Pwss-X30k*Rq%IQ`LNOm;i
zOF?`nC>dnv!P_oH`)@u2YHSB453hdXfDT=<aBgKUc=lbZ=G3(Mn0(l~D627Pw*P)|
zpSh%2Pqg}1Vqqw+ZZOxXeNSAHGAQ?8rcw*qQ$ye$;;hkel7HZh(+*$;;8#H#_AMNK
z2H9_TF|XS_UO5yZ>(n=Hn1Js8<LA##(6lKgkgx%8Gz5Y{_^};%BLxLn2;_Yo#C-?h
zT^eGYKm|bp3fJXS1lohV#|1aS1d0F&2*C@@ykKZTPm8AJy#|;N_=kpDzfpq=CZJ~I
zZ5Tw8gH{R}6fp{Mv}+wED1l+iAhr@51n6=wA9Ik<9E?O*koy0l=}W+|+S>PDDN1Ed
zNJuh885@MmndelL%)ClPB@vO#q+}K{Bq~WrB{C~R<{@RS5RxcG@xRyke*bfw>$^IA
z<=yYzYd`CG?r8x86*hGF^5wb5G&ib&6xtS;BiOLnp(4TWwQOIv7yf19vH_VSdZzU9
zoDg0Wz<-pXlz%Whl6nvq7nh*uy$4LhrutU@B#jV|UXtg(=m8@Tke6SC8s_`=b40oV
z7Ck}6i4ij^>1{EBsKFWlP(-<z{vlr5oiD#bIkD-!hws$SRW5aMWZmc|$@-U;E(u?a
zU#YW}lsr42fS!>kLeXvi9y)KdMo);1l*emp)_?zT&;4<pG}u$}jz@U)x#af*p3v1j
z^%H)b@dnS+Cm_v4`-$!=ATjal^7H^2G%_V)e{IF49W{^-y(mgySZwLX{(d(|n3&47
zUq@<Y61^=rl9@XTgJ2rS91c;Zs;c<4|E~qWboi#BVU^MO@>ghD<u85P0J0boa8_(+
zfU4+?=DZW3A_rbcjC&YkKw(x^R8Zi~hi2G2zxWb5@A>gITF?jNErkGQEw(*aWJret
z(H|wbIjEpO3WNBq_;~2`*K>r!^!;x@>>{>ee^?>#wpEVKO4`<}g^F0LZsQg4(Jk0b
z(7T#ksCTlrR~BK<fVP+KisJ3)=!#)ra8pN*T3FbE>j~rClxr4-%1_*0gfs%C4C&tY
z0XsM?2>Jl^hEdTF{RYmvoIA<14Z@g`^XJ@WFm0fZF&zQh!sNx6cBO1!yfc?Ah>4Gp
zjqP^J@~#!Yl^gNbD=PeHrQAkpqHb(6T7!iP7T>6E*PoTGa6O#c_w&cm(yx0EFZe=F
zXi@><f_ta)_!K;uv15!wC)Q<Lo{S;U7CqhX>5@U<L33}Htgz?-Umpd7<Cio#4L+5)
z?yy%4mcBL<`}b+ItnBNi+i$OH39h0*54a7&Bb3^(Y5X0cfX2P-?CKg!{4_e9_AddV
zWQ_Sc9|J$z`FLz>%nlPbh+p5cdX@D=Ob8?+Y!V8Jpr9b)dx(qc-t2Gz!vy9GLKA#M
zdk2D$Pq7ma>-Tr3^fKGnU*}^`LuG=Bcjq%~Re#HF^<XgoE5*JLX=`yLQ7`+q;>Gb+
znybrygn?V(>9xX+PAs#aN9iGY%FUhFTxN9^ROZ)9e?(EngD~EZ(RIac=2i8BM@t8n
z%Uf16TC&*Z@_RSXX;hYVxZjUOIdZjJJT;zq%+SFx(cI#Nv6yLNnUrzdR4%`1+#}jM
zJ}b-0@3uGWqi6g$7XIpS<KzRG!H;8imVB<354Q9^byyEIOrMWJ?yLEBT>?xKH<w<j
zLLzm)OQF|KmjN_dFDVtm6b8<?j!cE(x--_+-)m3hmucD;S(%#$p}5#U&R6Df@*hyZ
z-@iVbEr6hfabsjQ_0GYoyZ~*3qoSgI`~u`NgsrE6cc{7X4aGvdu|(5SvHIuFpDgH`
z$I`Br*PcpDNEpJ-mGV_i$^OkvjvXiAD8<$o459(5&_IA&Jdm>7Z2Szhhk5W!+pG8i
zJ!mvAMxxITLlQ%*?AOW3>c+<Ppo0zp#~Sb)joibBbc{3+*PS9FMgzhe;V6N5r)QVO
zzbeZ#Z#RQlF6&j!EiFNv+ZWHDSA)(DThh?*FbxzA#JYtic|9$Sk1_;+#AR##FQvvC
z#0B*7;^g<`rJ2#pD5bBlG6OG;?^>Q&S!M!0phUp6rX$;k#2t-cLNVs@jrf+~iQOHy
z=M9dGa~=uHsM7AYJc%wK)#ukSyzntp(f%sHD6@cu>>yDR(*XXTOYHDOCV@@y^J{EI
zgp$B=f=Ndi<2)(@_TqCWBcJCG&>+aFy?*rUdSFjv_XGoTm&y$RRyDZ$!wqpzr=kZp
z{K$)2jW=rqpM{_Fd$yhrQdEDmr1O(KhJW^_DSC5AC+fZ68R(w;^ZWM@T9TYcr(Mbc
z#KL(KEF3p=Kmde11OtHx_wc^W2nE5dl$1zfo~;009~-3L+{!;cGsp)RGuTW_1C|6R
z($YLPf*63feiY_!d@e5KH*Vf+<L=iKXK60brhmbqV-Q}Q))E{LKzoDl;A7ceH*WNd
zUie(NI?0@u@YHC;N)q=f%fq0?Dd)nD-+EINV?dgqRMqr^@cWM*|I3y2@K^pmyfgn*
z)pn`EpAe5|>FL$rQ<{om&J1H2SD{S|f@ZX$L8o|dgkVg}%oJEPMt;Gu8&Yfg@#V$!
zV5fi~k+BFAb=$}_VwJ;~fArP!(eOpIffe940f<NwITIv2qy3i#59jXn0hCBu8sKys
zB~jQ1$X|JOnhSr50dzKGgxjDmLmSnwfW4m=BYdpf0*K=0UO&aKw7W)ra)=+LV7dTr
zW{dWVv`AK76Za6^X#fwh%c)ZzP6W|YAc#{~_;~*4YhOh|k)Zz))7_25H{dlXaR(1i
zH%`2AGXM2s*^&CobIp5+sTa1Mp}@^nq{G69k^O40r)M+F6)&b{API+h1wWE9{@qj2
z;D}PABlIHQ(^me{^ZCrPU{pTr%d7p!s*D@2_x7i5k*J|S&RRz1{+yM`yC-~^+q*Uy
z3YEWryS8GrXBX#a`1mLSpPYRwoK|$%T`&<;g$*DAqF-!kYI^xu5nv+Od4(5kI%Fdk
z7rkP){53N(gIJ6k>b3^yeTUJbVuL)@g|fRdcAZ<4JEjLTR%An#)hEDa^I-p%vf28^
z73U;PG?$2%0chu)wQ>p51~k|BkF=x99O1Pn=Rx=GIXt`<){G5{or443piA<iMP;L1
z+$sOW`R?tn_JzNUNUrZ&sU^R__(W<9+OZ3ZoKhOVSu}6(9NWzi-b{0$e8&zI<`?Y!
zn>-Z;mY_`8kO)M;ZQ5?{nUC<)6mo<bmjyx<&4VorHtmZg2KU(3uFgvm(=c{Pc>;C;
zhQSBVY!LskXW`1v`FV@2@)`O0`L9wkayTw_^Dy4;`f)HU1L7<uJG)Wd#_HCtu0Yt*
z9$w`Ou7;gPJJ=ynoMSx}&xyVkq+AtiIvs30#3gA>L4#i4(8z%o?zP5K>$BF-z!QWR
zx*QfBo~9z6Vx;1z9zT9ZaPQs{R?6i@#*`syc<*JbO$W>#djzI~<AEeYIkH_^niW4^
zudz)8HuKG(>q7CG6ur@$$z*CL%`2&QmGpepXj#Y~g4v}W4H%(IZtfAEM3)Wks*RhE
zPnn$GuT$3EG=`Qn<)DHuH6SFQ&uV?AiIw-XTm&48=m_<6+e8Sg2&k_BJ?e-7htK@%
zJ|ZPUVFj!W1tGnqrDgUG>IT#ow6NGlQlJ0WizJJ`C>tn?D$;)9**`DrH9Y*|j=z89
zO4+ZzQ*?ThM)A<fZj+H=LkYFB2-AE4sFw^xgb1FzxilVd0Wzs;h6n$#r(O9G`qboZ
z$rIpc$6vVL({NHT@%;C*XXA#A8&{&JTNNuiirD$iI5=EX5E2T?nRQ|aT!lFux@V32
z2eHi!4OJ+O5SG65(9K;O4=_W6`^5Fb9x~XMJvi_QNigSNOK?bbFoCKcu%UAf_*^>W
zf!I)P1-Xqb8#Zj{emz^a<=PFt+!Le$z?Uy;=mgF`3vn#bbopctXkdW@p2S26!WwP~
z6KHj1_w0do88THG5XFC(oORqg+S-hlJ77Zt9fOo6n=@w^@ng{FRdse2nQpwa=v;*t
z9y_Okd7ece486aSJ|^Iaj{*^_xtKM2Zr{-t?mK2mXUdn1MA&~l{@haUY2jP^Yn4C$
z{vA6sO3F;OxPqz|KpPF3C>Xw*4tH5qyyisK0bm09+}qUs>c&P!1gK_bXD^a;_gAK1
zT1`kyOoy%*Dnn4P__wvKjXFChtB(-?%Bhmy!mOeEx3r9~{}ARGb~St}aCADECD6B{
zsitG(c{88RABJnjph623*y)naC_(He1#Y97*yU1kev~97aYJ;qH>`F<h2rHjN~5r&
z4sO!dz7zN2t^UET{PqvsDuS*6oqhrxaP~dt)h~|!H+rQT4Z+RqXmP_l(@2D<t&q*M
zO;mIpHeOt*e`Y3Z3gXs)_hsk4$rpsx+TME`kBfxj2re>guIT^pVEy1=29E!6^ZQE`
zM^5^z0bl}1!k;S2ZHH-sq;BB0*A}rCdrlYka4+MERz%ptS`xb3Pbh4BtqF%|z5;?y
zShOXMqTmtGo=54*^PU(#*Z!A?!QuKno*Cuk8nyJ8z~flm!+6y&2ti`19nSIM!Mx<m
zI&?n}X+}cG^Xb#4yV==v$X_DH0zBZuXMW7dqD%Nb;5}mlaGW&H<ndWq@nSCs0(7X@
z_R}~y6uu^Gmf^f{<v(>&>Fm<JeEs@z1;3-NFA4OH7RrJr9@7@MdDqd+*#X7={U!PA
zqQT!N0B6Jvg;!_|vN14%UjuIhdMI?iL2+^M8!)_JEP;IxTo{W5c%?@#&lhUO)2FOw
z%YJfT6Yo9MU=Fn}Jzz<Uvq4l*7hn@R#YIIEDMKf-i!acZ4fH~Q(Bd=ScF1nC_|b|Y
z_E_qTZs1!l^NL*zqanTpOv#1JgzFH~cDQpMg0vYoiExE*+Cec$2R0Ch0CVxl_uSAt
z0G9yvr{dwU2WW;ANEv|JY%3+yYcVnGS7vKB_X5Dme{&c}YBjo57B)6Dv(9DoWsN1S
zA3W4W*rV+>xU_zV^r57+v>0k@58s}@H>uzD5*Ep-!1Yp)o>=vS>Ym_L@brULZ4`(Y
zz?lGakoYu}5lMl=Ir;gAfOTOR8=IM32b6C8wKKOSa-~xiBfT1WR^X5wJEJGSpfH_1
zd-fGdo1U(5BD^NJ(7if>tTOXe%d=&Dy~o764**nLxq!b{v*AQO>`+jrc<C1{cUzvV
z?CpJC8}s;n<h5(7NYRA2S`!Q#nA*E?OP>`r&<zmR2HX+EQSja=&F8^^jZnt*0NJQX
zK3o2_C}x+MOQ#adF)z_DmNO1*&MtONvg$W6H#D62jw-!)yOU=me0RBDUY-O*2KD$0
zbMR#j;n$usWeced_AkKq{rz6e1PIIzuM--URnYU?cON{)&s@>b!3MD{P|4b;gUcaM
zKoB_}<b-;SlWzFwK~PCmeEfLl_p~Sw0;nT0K~94$(Q7p3!ltkc$PFO;NQ&O6HrcZM
zwoI~n_a02Uc~e=Fjx{MG2{<yL%pe?avM`7z;F|94vg;^<uZ~>oHz9fpf;1p4ui?el
zJbhR1B$n`6B6Wx0ldvd+V+8MKYhfN04S5E**%9c#YL1kXfq?XWDEu0F?f3PB05$5`
zVb>G(<H`Q%9Bs9wVEyWA%|PuI*1@VJWcK%4>5Mg%8j1};TH>BAG&H20l5uSE!+X-<
z?iB&qCxKr`E)lXjh&>C&rRRqn({IyZ@5hRUhh-zIb{H&pfqa6{y6h4?g+YKG6Fk~K
zVv|x|Smk`94^e@kf0_%Aih~YqM-gLqaojhKs+e@0v%{1v)l4j<7@B3<cR8R{UjO@L
znV(Qx4!j7eZ`<}PZ9Uxy7U)q>XA59_0jolARczJjX*u2u9N~e$e2Lf;v0oL?OMZvu
zPi<Gcj6~icBD)7ra&D-CCi~unMBG3-OdZ%s$eM+SZnpRIFWdR2U6TVYQ=<q|$P(O<
zrhzyZJbsXZ_*hnAR|A^qtzmLgtOn{RY<>u!r~o(}g;n{i$MMA_;Z^<=6rOs^vt@z6
z;B3$zYZ(|gT9}tqI~LBqJ1{fUbMmT&0pt6Jm8i-P&{RX6k`R|64Tu6mwJ1Gh|63X{
zWj*zWjEIQZ0(#@y<mjkc)8XES`Q>5Ir7$a&n~BAezME7?)UU+2jy%8x!^k_TM@vW~
zZhDE*fjN-M)IvN2kt>>;dPvgU5VW&l%brI^#zfYxUWI>23jl8jUE5AYTs4F(M8lql
zYr$%pf^6j0@m<1WVOg|Zb~W!Xb#~m>OH^&jCz5Gs0>K>GS?I)*b{X)_e?45xnH|8(
z^2-;+fF;dhV5@F!j-+arF`{5zLEr&)BJzJCuOTt6GmmswXcaM_IpF8O7IX+yi1GPx
zv|A1Eh?cqZS)P^s)utA-;Z}5K*96|z)!Heu7Tb64W`Y2a*t$AQUT(w=iA{HeeEIde
zU-^;8uv_Z!mSK!VPpoOk%z6dY_&188N{4L6)0b<)GM)e^Anz2S#Pk{`WFa4eHl`Nn
zCwUCmkR&A~TWORvyVDrv<?S}FUA-P7#i@!S#>2#F2}3dpQw7F3wGLUOfAgl`!S42S
z3&zLAjbOaeKr9ofh9C{IcPPqX#Io*xd6Dq=gk{DXl)dBPdSFZmdtA98!>vLk0${u0
z`15l#=u@36!Wx>A<aC2u#%>p0ZKWw|?tPDtwl5e(L;sZeF8^@?-yJ-zSOe4@W;7eT
zP*|26MB}}8z>^j{G4Pva(?QnQb>s=4wvwnOBKaWk8bw)WY*4UCi2=Z#7}rh(cQD%|
z(=rr)@(p!-53)mc1y^5ArEX2S#z|{-i#VwnOt>@9%Mn8vz(_ps`%noG7pnQ=<EXo5
zY+zd22cfkUMhQ@LH^ys(+ClIW!-Li3&znfSAP`bVv@BzCa~;<2_s{Vs!GTIj-0#p!
z-m?);vL>edvZp8D<s*E4n>#FIRr34z+1IX~1f{}*^boC@HH{clh~y8qCY&mo;)qQI
z+<=hR&U85_+<|iiVLyB|_wGQ=rBze<|EEfT%Tx_B7wU8O!(GqmHgNi(#N!`pbP0Iu
z?0}*W)5C)qj2Jt!Kj*09Ph%H8_1XQ;8f@m91U49Hhy<$6egr@p^5W=z&+q)%hH3AL
zA`DEA9{ta@g!#)JtvgGoI_W$xgU$j_Iv88lU%VA=4MNXCnfCkdTnjki#JDVD(uR`7
z3Pb~sO%^wF`-9ncg)K^rqqCl6Blg|N5k3hRTt6T_g1S}g|N2x=k749nV>ZRhs+pf;
zW)5I{VZfUSlns;#U8WraG3uDyzM~&U!#cbIc*p4Epm+9JXb6}=2UMa4wqV7|0G|h$
z6`Npx=)Xyt-deIy=cPfulm|z+95LV4+zDhtnj2)yEXlI*kmlo-fi4R`i%6_NKqU46
zUnd?AMBoq^AObZ)>%RcOM5q9oDCh>xUOb5XZ8PXgASd|mo`iSkhWU{~C2(szbO~iB
z`1fy53`!JbTz;}}cT<xdq?{#QC$Y_gL!gnBFeYj+wXbsP;~Q&H!6o64#l3uXB#~I~
z$QWmPpdHE~JA|3lbbc{q4@6v08>J3o{=<20yS=iqSI%JcyOMn|=bCD|GVFP&m%nhK
z;wRzyId+%-w#^T9p8Wdt3E-HBtp_;ZSUWthi!~HO(KC)OR_O6jq!@ro0sQTSZ3Br{
z7O!~qJBa-f9w*}L0+w=0ZxWei0gxYU+qLUk=o0CKGB_5|ASfex>0v&^!(718i@i=l
zY>oDX_HM5J_xFW;2et=fh>)}{04lvjRJJy4rzpfKlB#`Wq5l$D7cB~N8yNYNnu<2W
zCQ8~|t9bKf{8;wI3$X*XQ(mg+tulgw*ReWSfO7$<LZpGD#644j@&b|Ol(JpjVIr$~
z>{#McmWENw?Qk5z+F6S`+Sc2<HYvLR5>PN7wzzjB4+N|gnmbE{89bMq2M<&M-(ZrE
zEzjyBz{fx#8X48}C$+WRn5kiY%xqieHWxBX-GC29;}M<kdGH3|Ad$O@Xsb#rvEi{X
z`g9{Ly}=bclyt0R_UpoNY!b^Xb$G}1K!;1QbnGqv^JNPvqwLHCb3NJvQUGnAp7@Z7
zc>vuQFFqgwzgM)#3A+fP_)w@ZlM(?YDKnp+Y=&SO-J~6!GM*8|5Bn`{D%no}{z0Z!
z`a@L&kUIL?N)TCulfXaU|6KWt*VFm*>FWsA1NySOG`La)supt`fSljh3t2chLx2wf
z{Da_w7n%qY?mxh|00JEZCPT(b6b-WB;bm)u;TdFxE#&X}5KTzJOirBGh_N3spp1e7
z7E*p7>%fA6{>aGEG8}wA*nfI#t=KsOAju}QC=7Z;NC?OkK@mn@=b*2_Y>bvI5G8LD
zni_mRf|5Kw`I-^(One~e?)G`jiy*eAa%`^cqo_NWG7Rp-M@O*bp`q3<vo0HfQ)2!m
z2HLgj*KhZD_>c<%AAox(#=*VRP%ITtLIMJ5T1e#;5XeZ+&i*3prwW`R&WfdAa$-V1
zS>duYOaB)%T2NPXWrsQ+KztwM?3zfc!M;nNY_g;I`BCr=J!`I?fa)JHF~3o2h%iwB
zR5<`0lYtpT-tk7=KYrsrl^YyKL+T&IK)*PY0xSn0J50Dd<dH+z`yH@qKsFUwT0;O^
zC`oZu@J`3(V^mwm7@R5VhCv;$E(9+m!eMUil<|Q(X=zN5t)jU+TmFX*m>dBy?WGgl
znYKDN{6WZB4O;%S5Hb?fq|1(liz^gzY$AXlssYS3#6^li4I<=oyDzd?fJKoWiK4%s
ztNFw_Afv0WDP8&TR+xaeFihk(ZHBK!1&<Z}M5Nyhew%d(CsPraRO|q1`ETOV@HXI?
zheY;alM2UFB_pBcKqi^S;d4ULd6_%s8SIddV0tK$Tcc*s9dt3twE)$O7oV8NYS4jI
z+OoJk|DcX04{a=`g6Fw##h=e$$P4mU=_no@y*&xH4$!n%?*YK|8i>Zb;*)k-(Fe3O
zrmpRPZm~*<42Y~rBO?le0WfU)Wm8d(V6RZ8mP647alnysM*R-lNz+~Ro7vfsgI4^a
z>^3Y|@P89k9quRS&>KGlRML(3(blynF7WVd-6~~U6JmbkHe6AUkH5G^FlJ!R&{`&7
zy&!{vhJxzXU?YM0uk%k<9|4?fa2OL71Pmh#aOn>phJ!W1HkJP9k=`FAIEP6G3c$5b
z(P~->3@Q-<;`!9Hc#OHfAT7J^?_qjWZ$d2~mP+`CQBf=ihB=rJ+Loqxve!6MwgjrS
zMa4KwLm!C+b%)B8G6K;klBuiV$wi;DgLDb-JOS{4zy8R*G2j-Q(EXG75tVVa?^J&A
z^MiQ3Px}7Z!M$Y*%jV7WOiWSc_0K^bW6n_HN~G0)dlDNQJXLG-JIEq1H;<DRc#M*%
zsY!=UCzc~0Dc+LAA4vAW$jHE`D8uB<$1&W1%{E&;7+h_9<{sW(RkUqbE)7eF@mZ|7
z{us0Jo6kQuLj7d*cOF@*prAmE*>F0lo;=Ct>+8GE_wPO|OK25hHWy;33W<m?JF`aN
zU8beNG#H+{A`ApZzclC*49UT0<lX`2h1tG$7|&)glt69#uy#y~0o`J4D4Q^{P0+G2
zLLI2CrWUZBqDGm%+Ex@ZU_CW@=mw9daQa+~YI+6P)zGA11T+Okd~^I)Ni)zGT9TlF
zAA8v1G7$%&6ypxlLk2|<O62QO3!L_$jUv6*|H#aQz4<>yZ(^*#J}1G=cG%p!3d0Ec
zeXI`>N(xjCpxIhz4q+!%6S!4TSNA2f$KB11pfG?azhhp1_Gd3bP=s|p=;-LgEI@SK
z+1*{$+smnJI&tz;AI(tn-ofi|;`wEZl*1saY-(?Q_;4T!IEj|UszgW!I2E(Udp?bg
z5fd{YsajOebR!XL{YiT+mRx!z51{@3n@EuW9KPAgGrfAuc_$AeJv643SgGI#>ChZD
zkGEwO`2O>Pec}dHbZgbv989<UoNR0|bd*~@;cu-B*H}9{|89csem=1~odLy?Sd%ds
zVV>GUh;{=5A&=tp#GD)vIOhm9Etcp7{uyN@3SzWM#47;;sK=X!I`!weG2NOq!^owD
z0>xEG)63J7bWqqkFhZgJq1Xhtzvx9|A7sBqnhs$2_j&(1otzJPI2b!4?x#Y5#&;27
z?!PosFUh$5|7!tK-P86cDOqv-gj}x*HU|8CKX7005Ij8A1Y{S9oFp~~4eK_Ja5qfK
z>YAFXoTd4omL>!#<h;O0QIjN*f_t~~By5v_JY@Gq1G7Zt=_%7ohw2}0htq~M|3rli
zU%r^)A<IORMN%)2U6Oq-ClaD3cm~lm;O4O6MoXa=Np32-@lN$h4LpGX+M;9o-9}ae
zPiRKFO)djrWufCQf5NGJW#!+3gmmA5k&;2*YUtZxU|8`o2Qst`XZk_>yMEyE*w)W$
zNLC%VIq1=z>=`SH;*z1mL--AZ2N^IMFf>ALAo>%^U4rD|TTzlC%J9qD<;6_T%a_Si
z!@1wxzI3w~I9wtl2Q<$B+6W17)zBX+-~J<kZG_Zo051ITjR@&&b(u?wxAIzd@b7n8
ztY3I*q`)t}!i?Rp)ZgC^DO=XZ$x9v{nrF^D{;^V4R^|pj)|KDG!I-5<;uOGH;`Sud
zste!l!x%y<zy?N;UUblRNdoiSVc*Al+CF~&jH0H_cml}G2E?4C{~e&ppo)sa|8<%@
z^WS98v>l3U@+E9!0^A+=GQ;4j&3D;Ft74~so|d3h%pa7@#bQVDN(NM6c!JnEAua&3
zDS5rx+n*lNeF`B$EBZyaGKJ~xV}C?JLL}^~{`LC;RsHc0Abf&U_=3(MH0>Y=NX%SP
zwlNH98SO)EvTm=ivxXAQ2FQ&Xp{pF5HVp?bDG^oC2k}20<}j~30TjDu=dPl4z>A>H
z&~cDXl=7p?{+Y8raq!y;%gFTfKl_vV5`swlzM_=2&y+stWjr)gET_IIcYO55lgN|2
zNFkvHkW72MdiV0huJYnL?7UI*FqSeNaX2c@fh}6z^(%#-;t?-J!(4hgX_|TRaS6nr
zf$)SB-;LP?PoG``+6UQLGhlBwJRCI6(j{ui!?T`%LQheKT8iS{DHj#Y{rP(f%R{|0
z|0LYF|6zOM>}0SNG7v0zGzT1!bZKpGO?@tG1q6kraRg|pq5a?6q-e%o-Y5taEE#6i
zYZxhzoV2b{);!Qr&)?Szo%x}q#YNWHy*FK^@U}o;*PwW^o#X%!&I!`~^4W(z#03Uz
zT^-<K?b9EQ0Z#!5L7lcv{e?i-8UT!map|mR7ZpItx#>-gZ%|LL-EuBaHJxo;=y{-M
zq-R<XK6`i!qkE0VTUtL*D2y<oI2&j7*LOq~7Rp=;2q1~sGAR3)?IL&;xe2+}VbUpt
zeGv{H*OK#hpA8{<qOMN!Af^$z=*a#LAbL72*qB|34hJ<TZ;yBzIp5;kMEefg$bYyi
z_!>K&v8G3Tv-|PsEz!ULKIt%#uYK+|dJezip}VG-h0rfaNvu-rb*O=$`@|_8dZ&yx
zM@K5|!=w|kjtSd~3h>|#>CP|Es)2f+k}S~P0vMEN0+8DBcaLt%qNf+084-HHx2Iy?
z_#S@Ns=7Kl0DNHA`c`A<6!Odft*2*hDq_62t(yS#^<+gAP`z-upOu-T_g(&BAHL`s
z4Gg#f2`M4X8^<%3(6i#c(%?-a;|)oJ7bvEuqZ<JTrq^f`I$RyR1)k(UsXVn4A#xr`
z***Xq>WU&5bJ2dHpno_mnUM#SQvk*v<QV{IOoqRh1i}KSv9-|Qvv@~_TI~4(Y!lG7
zFvD_;JB%V32pk@81j;Zvm~D8&*`w;W?~+M1v+IHHlT*1$;XAfEq~c3UsJRj?9$ImM
zv12PJaj@lFdpdKO&!>pwa)9Fw)ywLD*A=055R3rj;(*-{?l2+SzGN)_>#8;%%94uN
zO)MK;f{fdPJ@<yNiliPkVz)N=R#~eHfClholgG!M0iY;It(&Hj1`h5^bR-z_kw)3D
zHne3-4Y|YcuM<!cg*oKRrjLh-Xxvcg&uY>Koj-49al_*J_3J}uayj?jc=SLVFa(r)
z#g?Kqxo-oTLf#KGV<21QuWW8=DzmmiQL{FOCbtf|*f#_910Ugn0odk8<#Hj)K(z9t
zdXhVeuVM>PRL!#u(;Hx?#7IUC1_700bo}^+Q1y1(ftOGb2!$5BKaI7Ge_LgNQ?G(|
z9zjTzaO0!MW8?F2iDra8fsCI3V}}o}{9)>F?<8X%N?DMWpvl9lN*!QlhA^`db~QOl
zO78>Hi}D@Z5&_$!F4BoO`gY(awc|Q3&2xD#RDE_YL(5rQ?g2&kcF=WcKEJr|MvcIn
z1>f+FU16mV=Bf*@u*js9hUp2Zd3nj>`P@uOdcae*=p1y((mTI-u7eM$zclEl!9T14
z&aRqHw5CMGhKP2nvp-Ob_F=Dt0bddUK4?`U5Ly6B8sWM!gm%9yEw#fex>f0hgg6d?
zoG}_t%4ic{9-*<KJaj6d$C(uKyxdEJii>q8{Iu+PdU}{(TI^oDDUQmE$yid7KVvd4
z8ng=QvDD2hEdJ}*go^s;%Ss5xN2I#YprQ#CFz(1%oon{sRu3eq4SnNSnb6_+Wr!e`
z$`0*g%}-mSP5;xD3}gGM$us-2v_!Hx)VWHFi{&s)fI2?RZP)B_g`)CJbbOOl;F~Hw
zf%OMl@1%-`xnI2a8T{fJn6l>IEKyhG?XB-dW3&q;N3U`G=JV&z_l!B8+KKQ~D31Bl
zM}~|6F@v#E|FkAlj6i-Ek;&HY2J8sRnR~gHpwA#H7;`$X-D(iZ;docs5>*~Epg1eT
z?10NbZ^D5AObu}~C_Qyx0Z>I<6oaF?)k=n>BSxR8?4A)nI`Z|5$-+TiugD`MuW!+9
zYwO(zYjiqzrVe>|LGba<YhD1H#AeCd6C;Es6eHoxMcq0ioV;FHK0p9u==h65a=clg
zZ$VPR)s=sniK2zXF^s%Sy$G4nA!xF1@G3T7i*iooOpK4Of5a^3h5_zFZ*n@j$#~4i
z>uyyGtu6cMJbZG4y8cB4C(b_Of3rK3WpV8pa6>NqHZPDx9{b#+1k@w*ky5Mw5#Z42
zUIViC8T-udp#Ua=tic6uzEJ1Q{o*(yHfD5^qt#3Y)v+!C;OgKqKrWs{HItUmkbo?R
zEU|2doItcLfFnwO2^6h*^~0WX$G^1!^8rJhpQ!2|GEp26YoWf{FX7XAfyn;GM%~G3
z$hLyu104y9LhsL3vVjkiIRGE#_^BQayua|Y)FPk(d@a&z65{4p<7VOd3F?g7@L<#C
ztx3xK%+@s_EWfd1k;jC}N`MD!f*jDOa+gVdG9UD}=~Lp|F+(?_B7e71MFwPxJEf*m
zmDOoVfw$#7ln9eDp5F$_05YrxG=zd1VI-msgQ)QbdTf~J-^+w7U|TPDf1h&w-Emw3
zHbG+bhX|muh$oU6+IMhgY+Y);=*BT;2)cM@ffGc7j-trzbK=<(&c(!AlI3Nzf7|yd
zxBavm`SeLp`DD$24{pf|C@)X_lfQ!DaccUl%h4FbsG|*HEjIL-`=SqlJIj&Ft=yNs
zeXInb5rl&Q@*>(l05-o16c+An;t=m}f7yg83%O1h?k~B19HK&CZZL*q`v?e7D{&or
zqRzzse2GbK<aOW~8+MUnW4HB@eg0yVzh6QnTMgF%4P!MR;E8c<+W-nYDcpXl?<Az%
zZfd4UmV?m-_$9&WKmZ6h9zJ*jXewZz^4}xtp`8GN-$>|anVc*xOa}seMM`1d00H5a
z{!~nop4eTv@7tE~&nYyzk9^-J;U)J}NVVJhW|AXB#-rfqY3*wTFx;?qjj!Tw=>=?d
zD=A6m_|w5rKo!Jgsje~Mimi`mZoq9xfse#zjbi3hKOHQKKct>j0NwEX8*e#>_Q7jz
zRhO9U`Djbi^*)bTSXzSbJ9SmGTTM&GBUMXK8Y6(U#i8Jv&)5w+WU(tKt6ueU1l>ai
zkSyZ|C$BI{-O9h2tD(5Z*RrW(SE-3TsThVj3b{lClm}808V(=?Z{E2BP_`HWM9wWo
z%v%}0?~JyIdA^=*BDf-V`nl;N;EF&Gn!S}%H2Ir*T_G>tQdGwD9LJBKx~Qn;`N$B@
zytK5y1K*T+hu;wPqBI6jx%#gmn-1U2*rLzpXKlYenjPcDS+FlTd3m+i-2RUq)PN4a
zZl)#goxjajD^8&qy8NfpdS1|SV@G4~({2%);^~{dX($b3PiNBf@Z8)S6gCECtQhsU
zjoT1T%LODMbds%A4@aG0py}HgH~0bhX`^5kiAshvX0V3gTk17ETcu$PutVd&e$7l1
zU<3jtX3J@KY^3H31#Is8rv1HO*^&iJax)EQ=iJxM;C*&{()J<U3njb7#m#b83id#3
zxsla<a}q=h{y1RAc(Y-1t865aOG9)1eR!wbLFBIljwaX+wqjIq0{me==Yqc<P-!qW
zdK)S=SFVfwQJv0O_Z5HbDvxoF;-;*tp1xBu9{Sa`1#~!OY(gq8b34A7iYjkKCV^N3
z=vZb`*0jcqA2MOA&Lr`l82!|{v@da>?m+m1Lrt)tOab$<#oly0bt)Wk6jH|UPdBHx
zOpN;4{=Z-J77MMlU2M*tZ8?-yaEcc&VLU8t)Uq#d2`SmlIAR@zGz^{1211UKeJS7S
z+EpHuOepIFw)EbNqbfPK-c_>e;crNtpB)_5IQ!V(iQPfIY`NTP-N~Oa@x*kA3en+$
z7Q}l*Jp`~H%o@S0@KWP}v!XY}sLelI`h6ev?~dM(!_k1z_FefcNp_>YK5k&RIgh_B
zi`pguI{{p<Mm>-2n1zMF!Gmd3u4%Q#VZof*$79pN9S5TZRA(4_zEaO(w^dD-l-sk%
z(LysAkT$Es6!Hp5K%Lb2CR0dXhK4Gzz(axXU?<HNb2Z(BQ5oRenX{T1R18%}Y<j8m
zC@UBeDI$J1*1v{p*Sc<nbfiQch1M`-k@2(RX;qh64@U87U;Po<{U@h;oeR^8<7ZCW
zB1nu5kc>K)H@@=e)29>S(xnmcd+vf@_BwVyA-e-GZ{`~&oMOUlgcg%!uVh_irGL)n
z-(PZ4*o!WUE*m4${1e0Ctxv9fYl=opkDgeLTy|?RTYPgmFHu#a?O-5_Y0hPd(mkE^
zJ@L)M&Sz~E^gEuz5`vCgQ*SlWUp62E?fiM^#oh42ljt90u2MzC=IWchJ+EHn`C9vF
z!^Ak_{BNGWMFOjB&Oo4q!iUM1wNS?lf7xGIxv4t|ZJLfwSocB}`d%$vZC3gZTt#wx
zB@E(!8EFe&=j=Zes3`VLDkQ9T6T=$aWc{tqi_uTtpSIQ8>il4@ki(~3bpe|2T7ia6
znxSwzQNyxaTIGPFK`l|Yy0+@0dp609Nr<K6jXKoXfCHKk?%uN~@gV!2=SxLeY5!Ha
z#+JU<m#OnQUM+%!yle}cHJqhp2IqTEKkHt33Z%a1-^i#NfE6iC?dWdDUH4+{K1jX8
z=6dP&`PYov3vVWF&{6P}ISW6zzo<EU0x>OleEWe*-!&4E|E0(M($ALhQ-<2SVdmid
ztK0{(=sy+vaoWYdVL#3ooYx<Jfr2jWR-J)PjY0cYRhgyyfk30Ie&M`Sb@ABIisDiX
z2<xLWta+n)oTmC$CpVjGeTeGg^LL~TTjyub^v|@{Y2MIIq4Y@q3jdp4>aO6te{}<|
z*bN!biHXIsvaJcPwY4o;rJSiAq$|2Zud!9^69f0vfu>;9^q&Wvb_i-z3Q}Ezs)w14
z=^BQgP($_F64{KH`3E&u*vkW!sd~<roZ8v!rcBl}5C14yxo*&B@(R)TxYa_!epy|}
zr$|1!VOMZM+Oa4VV`VeC{j|1PVZBiCxDFQjvg3q8^_q7!h1Af9Z`WAbcKKbQeU$%K
zXN5=UUa9m%=>AbH2L@2%U0w^@By5HCcT-uG-afxp?(o|@XLI8@vGfosmzY{R?}1kP
z7(uz*Z4RQTjiag$j4q0nZ*}gYll{l&(!kVlFnIUf*GwHfehNGA-0sj#4)-eL1r;fJ
zL`S3)xzbXe-#YxRXm#H8Z2z6q1++5KS<{xcS!wpFg%y~xhnt8v>n~=nbN1r;-Rdl)
zC{<_BA*)g4UI2+kL$7xGhgTa6s}?8}hMkjbBHM&rzEZ<@W$!*VURpRzBcgj$JM`KT
zsAqKQ3>KMn1J|W*m(TL!nJmrkwh1Wx;f@QsMi-t@bkO#Q2zw1Dld^e@L9{vLdEyDi
z8^5kPaH&;{@e2jtsgx8<bU5$2Pt=HALp_ZGn@^JFrRALc6d~oHljD5Vdpll7{2Xrz
zXSSP?-56He?)w5-RKfAnL0R?(+iy(wo7luBw~HTt&Md1>lzFa7j>HO0<tDo?ad%;V
zfcnT|!pD2nE%h58pUR^wZ@@FG6W4yZmL^2nL&sp@=2?>qlJ-x}PNY@8zJDn&@-Efl
z^Lhr`chL+<j>h8COo7xSAu(HF?cLP6R12fP$3j9Y2;qd1jbyR){k`MZlDhFO)%`du
z_9P|vhx_#4hs}-bZ$utASOhhoFbg!%^Xu+xwVx8SpDjH4=-aWdvrI`IYu0a>?HC^%
zPpiJ)S{ipL!Ct-T*weG3<=*@g^@e=~%`XOjIv16f^Ab=99Tj{cKWhGA+b7LC7-W)W
z0O*&58)82^;X9McpBWP2mP0w_s2yg!N3EgYo(M-*v+nHlt3TCxUgp1S7Vo#seQ3-Q
zuIr_FqO~vgHaiWiz89XOc6jf@Nx9n^Wk|}QRA6^YeSQ|PzCaNh>M>jMLmi!(Dv^A=
z85|B#E(6O4)S@kZ?5X<YG)PrJ=LO<~C$X~~U0t=%9zhP}&yimUPM@F>i;GFQ?{agt
z-@hKgK1U4_v=jcUn)M-itn=EQHSCR*nF4sq=B=ewiwBq2;+}_PyYIy&wpLqn-OWvF
z_U`T27O0u)_{(lL&PaovX!ONcs`p4?5?~p2hBdH}uBCv-sypAJ*kk*&=j!qt9|9eS
zu@L-&Kk^4jxFFz33WWsnqiy5Z%!u)pFwDep0MY5^X<|VH=6_wac|*Pnzq2Hxb{$r#
zAHSWGag)ZBq4K1E)$u3iLYDXcJ+U~}7LYWv?TdKsU8;ZpUNctyQ-S_PAtxSfvpbvm
z8H(vZz&AV3&h+H-ftqqd&;X8_D_J}aRN@L0<iyW~?4=;$N`?yJH{=yWafU`T6N4jA
zsY+-VV_McDIvIL?iZwWON>WnM20kSoDAv2*46dOFY}}fe>KC&*-%(4l!BK1fGxpjH
zcEwnQ`|>=k^Mb8mCnwUX_O_MQc{wLn>`7N)v6&L&+Myh06&-Ox;I`WB7pb_3^sVmu
zeer}r1vfbS?j~6j*on)RzLj#2Q{=W%Vj5@Qv#Uhk5F=BMcF+x{e}QQdi|j{w1;CWd
zx?Q)ZD{o(MML!)$Zg~1e%EM${>G-kMZ?~B(v;Dh06<4pZP-&%aK?|}?d$)FDxB}xA
zhK;;EP=Fz<(H7QaIFt5bmyiU<fZV|$h#Z{fE(0}(KgRQC*O9d6h9D~uC`$1oBO^>5
zge8V;463jQyaS+h?-c|G2WR5_fQN^Bsnm1z&o)wNE-0Gee`5+(eR_03X~XrRX+c3+
zjTG9PwJsC2-pZy@3M@}V!q#FDHWYHTN2Fx+9aoCqc#G~p3nJS22%JI!F(6VQcqP^l
z_0sDPI3p1=B+PJzA1@)M0Ave=0;Yk8X>bT9KXPk9O5x!lmYgI8wt>edvQqq#+cob&
z^^W_)%-TCODIw%}z17d4u4&G=yQ9uP&M({0PgC$`!#$3a)V0zcB3dEcTJLwd1Z9aN
zG&{0&<y#)9uJZ*`L83Mw{!l@BS#aZb%1x*bz#@yEEa!owMB>}%+#iX!IJkF7fHrO~
z+BH77qH!ltoT1fGfjI|u<%b2Y=_&KSYwlbNk>c}v70zt(Y&CU_exZmY&pKl!iWn<v
z?YggBjd@mGx98r{s;f^4YE)2;d66<nvGaEnmgZn*A0jEB-(HLnUn)7ymdMx^_9J-#
z7&8(zkB5K2V%Y}a3p~W1U5Ql_ekL$ufjGvILII<56M|B(EL$Md;qE_4@3%~MC9>S=
zl4|s^Xxo_Pn;A#ajr?jmO%(Ju`DK(}ud?ASo*GGirneOv{4sWR*}PUSdI49_)EKr+
z$^!*kU2N{o_TV}WLSaG-p5RJzs_h@cWS;?{Iu0<b!-Nmxf<G{NI}k9?shu^x?~AjK
z;fVo&D;l|#0-SR-4&a0IXcUSS?tk8Q@*?CGz52D&3NG<w@mM;>jpUk%e7}0sV^+gu
z;@<1rBfeAT+@pW-y$yaMqN8$3dP{CHzvwEuH|@F>HQyZVR_Ui%B61Wrf%12^X}KaS
zuOtwQEOJZ|;CU;N)*6Y48vN5bU=R)U-JP8z8H{4Vxdag%jq+%ld|LIj!miuiD}4;2
zUubU@yHajuE)1_RZMh>!{Ytm*PEU?Qyt!%q@f#*%KB4c2GDKPh?{sR*@R`)@SoLYE
z<$?1)Yk%{s)kr!}4(1qk8rQky?T2oVb2lW;=<4WPL%clTJR(vfl3qA~^ORQFEPnm6
zGG!b8-peViJok{hA5cHP<4b<+(F7WIb50c7X2*-CYIf0{qv7Gn<~Z3fITg-4_jW;|
z_7am|<RwAvos`w`2`bq;P98&pj~56l5ulECz){APbi)hPofcZsy6u`gw^<8zvNIS>
zozY6oY+ajlan)&G!QxM5@xuFV%}T6MHfCpGIiSrVsod>(2;57kx@uEb*~No27cM6?
zN6hFSP5N4;93Sx#8ePVu>`*D)=v}IQ+3Q&_?U7AGzaz;Y_2DWF4OKn9`&MN+iAv2_
zIq%s+dhKwCM}wjfE59g1wg|)VU7PVnE2KKgyekd2J|y#(?PN{ShP;3bKgqr8(IG^r
z3vByxfc_?RN^txh-d9^{MX%@sit_3WOKF*3c)C0{=92|*Zohc$BNd(N1!$^h?YR!L
zntAI-7a0C5uIwr@iTqZ$K)3n|qmY;7#lOlDDq^wMT7>V*8t#f`D||`0iN-RN{kV_E
zX5S_=`3m{#Rjreq!f6*iuonIIlaIydiA_j0rnv!efX*gRRi){N$DI2sWqxamFrA2n
zr!~p1omV(a4AnX+);gX4ziY1RP1cXTK6qXx>yhM}Pwrv$!x!p8GH8Bnb9o<_mAz7S
z*Z4$K=D$Nfwka^~h<*FnVnu(4#3~`z%gKnsDJZywo-?y?l>eg-zro-)%Nu8dnlmJ2
zS~<kyx>xSR!klfpOGx{V#6bYd+cTJ6>j~ZW<cSNbGk8n$RiPsEZd^+9w3UOzHoU4P
ziF!+sDUF|5Hx<yXgkRI%$MyZsUykA)!6)akwq{5##*HQqpMUSE)OiCFxk|$fEx+z5
znJn>ISXDXV^@~^3y3Yl9JGCxv|HHg1IT}X-<>d$SyNdEUOMB#+EtTx2JT2P8_DzXd
zXq9hT!9n|+KpF-5M6ebTT77oHa<)Alb^wi0lcuL19`+9$w6XrRS#B(+PWt14fbK&T
zQB|X}*TKT9GBur66h$cjIyMXhUcJ*{RRxT$#z&3>L-vf-yMqLoW3$e<dez<KF5Cd2
z5G^Q+bI3>p8Y8ZQP|_fL36_Jf9g>ayANnFHRsd}|cobVS9Y7yK5v`>#*CYeyinCkk
zL}cU!QJ1X<O(=>HbbFFg8Cm~LY<2Suzk-SP-`<>?*<in~Ma@&e>I5K_4(YzYW=CQS
zfFTg9Qv=wAVWRbHG~$8?2l5*!d};XCL&7s&(xUbP@{q*u;A}9Mcq_5}=H}%1A?2|{
z+6=ft$l5Y2`{R2iZ#nE0+sZy^#~xUwCGq;4i6ts*Q}6rJ9v9JebV$qBAU7Sc7UW}K
zMT6LZXpRtM5lR*#3DIXRyz_w^&V@Jx1rZy8|E~oINr-*q2&5c`2ff9Ii;9T&0l~tD
ze}V1+eHsA?-~xDZEM^1yq|njMEuBwwALiWKobTcE-ok0y*Ufdd1-#DQU^D?$0a`#3
zB#QDOy`9I&w{>#DWw_$BZg>i`&A6ho3D52BevP=YOgh2G@E<skoRCLba5Mt=W=2F=
zR+jqGPm|LhW9O?M9{Sdw6=!uN&FhbeKu2_6fQTKs1r2PV!26j24`oE003?N+>6+7g
zh+IIz6LYaoYZLMULqsOqh@|^JTU}5eKn|G8*z4--BjR0ebZfg9WH#3s6h3F(xIw+R
z#pTXU8MP~CE(&!dnfZ&@<v)Dbh+U`Wr9)Ibu>MN4E(B6;Ha;NwytH(?%<YiDqwB#d
zBLhF?zRT+roY9IkqrT(7p4*9u+MUab=(YbNVH|Qu5M=SYUTUfmw`;ZW^b#F6T~zQj
zrw~X6LTYT?7(4pN2jWXzCQ)dBCl3J;Uf}ZHJBkB{?(his+8L7L0U#!1-E{aO2k@06
zM|#ZbE2Bwp4-QDG#RGc*b1ncG;3yn;{1%1vk6WjM7q{IumOH(XJ5ST^%ipt-&G_Rr
zl#qSefO;t3K7aY*;v)sBOYT2@Bb@_B#)^oG+hgz{(y?vZ{Bw3)Z8l;LggWBqqPl!o
z26BnMSFPVoB&GmE2yXJ>Loz@UNT3l^@-%4$9ka}tDQO?wwOgIi`%dks;V7p}zD-&T
z9;*jTM)wVhOsY?U9Z)uq#Tk0_U0pvz<xN~2ks5-aTopi*fE`KV!N8TdW~(y6ma#da
zqGsy|`{{<W(ulhq9vT4JtMxmybahGWT8D|5CX&mAZj(swh*z&WJw;slt(5cX8*k2^
zr*a?YrGsEpeq83)nQbe0{k-~=;!_Y&Q&n{>=iW3qV>&xKD90mjczBqgLwJEALD#_g
z)^)1+ACVNj*uOu(igyfvEKCVbxHn`Gfq?J(STX4ap3Td5($7}q;~=e^RsP*~4odbx
z0rFRLTwNuw?QT?Fn#@y4Eztda#rFgR<zRto5Q~Y2Or}dC_BD7lGBSRVPIUkN#BuNq
zyLJ&%V~4ctJ2)I7aJ@1TnH^AK2*Bq6e>W;pBJx@?SpNYco5>B*(C7L_lf(Or`zNCe
zf6tb?KhCdbV7LoI&A+-i=JtrK3cUH(ua{XvS2Yq{N{WEA2dOm3g#Qm*onQqK;<+?k
z;;r#%;MHFPRpEkP#9~Gu=gZ7Eze-)MoyHG*XVv@nFDwTGzA&^pcib6PqG2e%)t66B
zZwFS=#47GqXJFjf55pEV@({>*j9CsSJ02=QlnQ+5;Z&{@bx4dm`)ZaBM@EF4wgyy-
z@W){2)HZ`5h5TL`ZK%3LHLX62cUr*;Q{WBJuhT-A4P$b$79~yRj>IFXhHPO5H)^=N
zas6I4HtF3ZTIW4Hgm&33-~ca#3K(l&1vCHLdtn#4wuHEL2Y6v-;rqP{Bd5B?3{nB1
z-XrlvqwkxO?jpSj=dJNSXvzbd3b|9w2{Q*Lr&Aw$9aibCO>s=`^WIeRCC};kLtS6r
zattNExV$fcev(FU{+ig`#sXdm?V!JUhTM4?d36*Y_)`9-W-!wPaECD!rYu{y0Wh{!
z;7RH=NlQl669FPQ(?wuQYY{n$7~`a-S(-m4D+qI_|HeBGK_{?U!x)r#$D2v*$Z6xr
zmurhtcdOa<`39A~w0CsursWqh+5WDVCJTZ^7auL0D@X$B5&VITOafpua+3*WOQa9v
z82C;NGjH@;B>4u)K!0Wa)`oEus!H(cB#8zBiqI`n?Ho`X6B8NaW`sY(97*y;0W6Q8
zf}b$FlX>)J!sWYl=l6d-&Y|omdvtprudswf<VOBtORHB~_-A_(yk-Uz6<O)xNMV$V
zO_*6lK^i;^ix!H5L+b#5z|7cvD&v<Utc1k&jS<Vgev}$`8DJ=OBGOKy;}<%!`qUwk
zmxRPUr$>)p7D5bw?12RI88~*ZeIm)*foZ|!;Wi$5T6dL&*u#4edjH^o4!sYHcZo^;
z*xV_t92TavYYAbCYbQt8q7bTg71CCqdnb9389!*v@VUdlA*%6EHehxD?5P=N37#Kl
zGG;Uo9&{u?B*)?8Vdxm1UzlLU2t-`4$S+z&8EIG#oSsBbb)Qd?{#b1^z2s%ev|wP5
zg<@{b0Rzn(jq@ei*hBnny$DH>*5ag$Oit?FDL~9Kj$UCc;h7m40&?-t>ejYFZfpwm
z$lQH$dCrmC5Tcm4KX<JB0UBv?SSPfxpj3yUTCRXU)5g}eJ#VIw9TJuR%m8lpywC;J
zXiQRoC9OtwMlA2cRymD-H??zq91GB#G-~DPKVuFmI*!6t9HE_6us*QL60Et!)t{em
znggoui1ahe$l6&d=$bZT+}q~(_=*$gD6%LDE>4=0yk;<|NR+@7(xvruGZ1K~(LEJN
z1Vn*tEyESe`kr4BokCnUK4d_C58=)MK!L5;gY6PN1JpPR6iZ}KdU&$z=qb70I{PA6
z@#8;=c}tXnfxdn$7<}fgk?1$YvPj50ASG46>qpaJ(TDWBYVhlrZPa%>Bhxq_1e`e7
z)=-o8jD!~BDuAJdh#mgA0b4sf4aCh1*&@!C1K&tasD$E<BP|8m2qcuB-|2`Z9N;9u
zC$sSq6L}iIBS<%pV>z3fsMOO0*`6fidEkI#@EReq0{#V+<29*w?tC1UzLGbo`X(Z1
z{$|EAZ9Toy6lH^4=CyJj6j7*HEcgm&^-bT9%aQhg_7OcCbK=cH_!Wt}0N2$TW?z`<
z*Z8>#3RE0uOmxwH*>CMZ3XAOCjp!^QBzZRAYE{<*=QhG(K-nsHuDO$aOXnUj5)kzw
zb~}Bj4j{=Y^|93KK+I?L;Na{2dglPp1t0-8uXd=R{lx9<<>pp^1CppdtD+zl`cEhA
zkkbrp)puAhL3E=ik>ETxjL<Mgq*C`sq~lJI^z7bVNePX~{g;0TA~6iFY8}@5A28^l
zy1!_Xq(_h-e;I`x0fZYt((UKBe_$z-6(lQg;za*b1fD|v1radQtxSz%%VM2-Cb-^a
zWG9?koTnm`2@*0UiTfDoNu&#8QYbKcaE>6XQ2%qMbb@k(i7zVTR|%8M$c!YEQ(AH!
z$O3;3V-We&*S`Nq&v@M93Vt;-KCbo2FBWnxTL{J=f42WmGzH*}h{XkD{+)$c0@A1P
zufL85Jr^R%>)>E|mXuASBO}hC>OXdO$ae-Fwad@TQ{23DYyTVA_~3~6KT(Gx?933(
zilYapMa3XzQLr`$ELoEiIzc<zAf}(_^2s`f1rNR89z^U2I##?xe#|6<Zo6duC;Orx
zT;sV)jr?qmapt)>A>%GqiXZG9(ENlxca&2$z19mT#ti_ORZmfN)Z^{QJ0<y@7R6z2
zrdA-Q1f9-&<O`kbj=$g_F(mAODQ7=rQQ#M^V8Qd}NAH(gO^#LaBWf3J2!54GBC6P?
z@OR}y>D=?Aj+K?s7J#~A7y7dFyF<jO#?f;2;_nl+HR}=zn7HknrYu#XeYPIk$(8kV
z_c|`wT&;D+VttcSlQU6&ek9K(?#O*SFm`<5L*AB>Ka*1FJue0tFaE5923Y&PSvZtN
z=y%Ue_sO-3nklkv*%FR?V>54E)AoV<?#ZR<YCi9!UlNdKlgA|g`C!@QIXc!*b(*`&
z2b+Gf2r+r=hx6RJ%Eto@EVyEzKWP^lgtsVN*=I+8fI<w{BnonraWvh<5GoVsF~VU!
zyJe8e5vvmjy|xXs6<MZA$6(ID8Gh?hxD_tvJwu=u^8b_s`;E8i@lK&=A3+{hMaaVY
zM6a}dsB^(NBqm1e5Bt5F^y-LuBZ+giQrmgo-gPlXN(H_G39hT`?2Nf!P>i2O#Mjv0
z@j>s=!E>JHT81kC8~@YBtOE}M+5%39#nug?tzlUzmcICewgOKXah8YVGyBkBk?3!f
ztXl@@YvF7mSvYhXxobj><SoC&Sjze5+e@8$ww>07T3XBj{tG=cK};T$OE^hwa^(OU
zg`ATJ{|erzcG0xc0FWUhAwI;37?&kD;YpYVBs(|pvypoc2!RJq{8N*^*N1bH0$`jY
zIl#D|-Z&WxN^=`mSA9H#xAxLF(C8Yy-{l3v%D<IX*j9FWF5lr=q9<09_}wxy4L1<t
z3*t5eO0{;;t~$p;lF<t-&M4M(*7+RyIHXA86(DN6Hp`79X$gpwea(R(zEbRunCY~f
z%(Nj5K*Y>Wia@(WSLMgo!z+i599dvw<GoAkhbCL{*E&}c@C0M4bYjE>o#OXM#>3Sk
zvS2qT$_btaHy|V$LG)Sz0-3k(&A4m`E0U5@>Mh|`nhGpGu0khe6O(A2bfb^_{l+IE
z_@*#QIN_~cjfau}Yc(ddLkNeMh%xLgqMGiLmmdKtfM=)+{onA&$TbZASN2Uuv>(S#
z1uK{eDJD}>dh%nW%fJDz>*2Z~YYXcR+c-HKs$KLj4j3~PWev5}zGSv}l>UI9F7{k6
zy?p`6wYHV@^})B|NBs{P7=+)rA(S%v9(GVhSka)+XdixD8Kbj<WYIt(Wc&B`Y}R?D
zaOh=_Ou3!W;Lia)i#*+XCaC1+X(WFsp48`@dLhp7Fhtb509`5G({nfqk_-BK)K%e>
zAIFf6Qh+T5BNqg8x8J3^_*>-FVK#u}O9~6ReSg|CIs|gW3UWR5<?mVG6yAn}>9aHa
zr7&g0ue*Egg6>6Xm36R5ZbZ4;DBborE7*{$A>;f0YZ~9POB!LL2;{sryYmDv0*rg)
z&_1Lb3a6-bJwb#jYP8*ORba$N>0d2y&k)iGE(N@pamZFyxo0BvWfS>n4bYCVPuyrp
zX9+kV&XE=s9&T5&GzGkvm>=veou9;sQBbbCO?FFQfk$FshHstlDxBV%0vAuBu&QA{
zBXP1AEAV7aV7Xu>g&B@N#Y6%qy-kyYCk0Jew0gSHasK|<{j#=CXrIsip0!KWs)^Xk
zM)3djn-i8698s$w;1wJ_GEK3zwY_$6vKz)sgY8O>oJ-*kB!)g*FC8?rDRb}fjUcq-
zEVZEbgQ^;iCYCIj2U*BhgiyrGdVFbehT34g8F5iD2QDQPXd7Wg;e@C#e05TqKo21=
z28j^<7jz=wAyS8H62deRaS;73{edWa2!tHM<KikkF;x$zgdaT0(jLX+JVa>CG<g<R
zQLvG$j&Cem<JWdb)uq82$Es*_VnE2k;=YEph8!Gx+Kv<xSLlSRu-kF{vsy|!W@$N!
zi2~5n-32U{Jab}efrf%uQ_;>&WO3sxPLe*2W&jsgoTBI*XMErvPOQ?#QR}`*7wX5_
z6Dl8@<iauTc}vQ)uBC+uLXVq`Ty9x^R}k2s0;vf(q_|yFt`4vX0p%fBbo=y%CGvUK
z-3i<`;#Yxi33$BJkF7IT-9asqXnGunA%G_~v$yjPjFi|qLa|^`O)k<L7wrG>Le}vK
ztrk+?Ov}A~hFv%miy;5i$egK0+7bS&C8kf}ebAiQwjzag8__GO5cr{g;6AURibDbg
zaD3)Q#37K>TBIIn3wM!JMB<zT-z1Ei1g|(r4CN~PK;mA}ONUV;?Lz*p*XN!BuxN~1
z>CjYm3*0hEV8*j<hWZ0DN6+)6c36FOnm_V`P#T$NdQska!MIKqcJ}LgT>Gr?3UJTP
zFQp-#buDhhA*d;}aJ^{GGWT@u_gO5`L;F?3BooO!rJDZzsJ(sG%?pPPBaV(7JdZTz
z?YK5D2#VhZUq|6Qk7$EjV<_B7%qU_wBXF8|Yk=L?Ti_SqD`F(aWFnOiJ(`+)t|l;y
zVMJ6!aEI}cb8E39)hBGX@Mj7*vEAd5?XPzmS9T&kMuJ<>tEe3C$wb@=(3xOJnO=GQ
zWB{s=b^d_{##Gc4Vi(02CigA)5x_Sfp(s=9&>JIYHgf5zJp;B{Yy?n6*`Pj;gABzw
zx^E^%;_Ch)1Sq1cgpmSX2KsF^++#d1Qu=Y?rMY-~<Jj#pIQ*yBmi}&MN5>M0v5UC;
zm5P)O0-a2$U7$#kY=5*Xd*TY5g#JFn`O)M|CSnBuMJOi5S=u3J7aJ2}4a*-nu?|OE
z+yKdQ)8N4-bmY!`MWQ$e6a}sicE5MXsD*_)?t)IN#-T%vn;2@{+PBJSbeK;;7*&N)
z*anUU>zV_*QP_zc0|nV`!M_`AHoi7kOj=k$BYQbN*+Kn|IfvvRARuKGFjL5LZ@z11
zAa4>xrbI*uV<UR_Xj}#)d*nBX0Z1v$Q2u@&0^<>?K#S=PkMrsKLZ@&z|HoFn5$-o(
zlXb0Sr1apt!nf~QoZh9i;BmVB-B)-}9BYdQ8vb7R$tPkgGBN29&nnIyQ$Bi>6aJHp
z_oAg*T%>Qn7mQU(I%#x=46q=#_kQ4aDdt9=RXsVd)WJammw;~u!dePpve>fXaD)#O
zf9w2$vn*Z0gcv;n%gdKvz(>1y^~U7N1Wu5}ALmu@RF?l-NRD1Xjk9iG^y~VJ6A(eR
z-_6Qe4P-zSNZf>A<Zb8_up5vFI~-Ky2S|4!%i<!K@tiJ~x>s}m4B<q+0b@rs4jKR7
zbJ!W9^LZVfgZAjIT3SE65A2&ZZTz*c;8gS3a|ki%D73^YjXftD-x@C!>0@#JA#qjU
zXWQWnVjQJd2?-m9(@JbTt*<VhkMxR9x{eYFZ33<5k5B91jF5!AGSWMC+72!9S_XzH
z?6aJ&E8iu_osxuqT+@en{o1w6Kzw#lZtA|gm+d?f2D%U$(I*i2VmE&e10NX_@q%C{
zss$zo0EdV!weNSX11LuVLGad~-=rmv15}oLxEoyJL?c2dN~nJ^;A+6NspZrqf6pWo
z6Qu1(O=yHK122X5pl<|%DgSH7bYg)nr31`n9O9jbOUk;n(}SYJ7~Bzrp_m+?xLxTL
z-Uk(a<{`Y&<2d_z;!ev55<vl-iLf(h`nc!sf`bV0e(50hwRCi<;M}x^XAR3VvP}56
zshQX&;G*QTX>w>HFdh|LQ-!V6NZPbhctiwV<2B$xYJR`o3BwWz^+I9;YSu9=tq}43
z`!7eC<i1jWc~3}c>1_M!xhGGbzWjj^QRd5RJH7xpk^!)2#8uKt^^ntDNc_DJPIq~S
z@h35nc;B(uVSOY9^T^kC{^mjyhRZqkxnUEDKE@_Y4kw&=Bp-_w5?$OV>`xIZ3(H@-
zc9M95|F-@)_1EZ(5NA<~G=p^%nW(<Muy@(g`|YJ<BPAdKXUZmA(2WI5grzhL0^08H
zgMN4wQOd}n>nLT#j%(=t&NA4oEdR5?5x!99;{5tm=<{G&M%ayT${{n{24Dgt$r*r;
zUW)uCynWo~n_LdVM*0_#90-ps*Zk;C^48GLau#meNICxU!a5XbUz|wNbL&hlHR+Wt
z1Y}7EE{wOv0=Kts3hzS3E6x^7)_l}QV~tP;NjbS%I6k%RGn1o{q3^-&Le7U&!G&?1
zm(<k1yzp%+@#Y{iiL4-a3I&0UX*;nL0u$pz1~<-tKo4r^;qfat?_T2k_i?zP#YRU*
zooM&rDP>dVt?8|)$gq`{kZAVPzB){T@c`u@KqBfwgA>jMAYlT?XIh+}P?HbN!T)s!
z-8yk~LW_+jkB;||)L8IUJrVX1%=h&`pvVaqkg^gNvUQb5OYsCiK$2pFenoDi`4+ru
zz<#;Vc3?wyz{>`6;^szs>GhO|{U@^?$o?@=px{l|=nbKD33gh+eiH|hUJmYsAS#+Z
ztCkO7t0qgGoSTVg+C0nLWiCVp!(~Q}kwI`Mkp|&?Bn2Nop%vEo@vqWLX<3j#V^{v~
zpcmvWA%dE0i3q?a--0Dz>O5laY;bGQ?!;?;^nLU0T^(fHPfqph((HF!M6gT@GIS2^
zh;KBEK9jpKsT@mc8@h}GURa%)5^U!AR*^7YHKpaVII)tvSfq$M{`E+d)5pyLCPvr*
zc=v}seOe902HvhPslof;ra;`06P>_5sG&U?MiePJz{vjPVtKGAM7Bn9vH(hDop&K8
zYLR$foaq&9@JA2<*R0^<7U=KZDy34Zt$XAoB}HDie-3lQcBfrp_I}BGTG%j^oa{Dn
zhnuKnARMyAny~mOdE#(vd^{)_8tBEy(Z^8X;{2H?EC6_$%Lnc>pFkuV8k=o!mSI~C
zQ06DE6gi6V!en=(6ra}DXt=o%d`XVqLJf(2m&=0l-D=2|gq%{%6sB3UqX_>mgYLM=
z^TA8*BAX}G6&2QvNE~;BUgggIo-hjOORxhTeR%;hDR;V=nAE9macq~8F1x9$C`H)n
zLdh{;Xm<=#6=;&1HDOO6XSAW}l3+*JNxOIXBMA<$;0R(<JOLM=?gis}s^*zzLg!1u
z-f>&oa6m%c>wps<uv2b81Oa+LY_C$F@zjtHFNtg-lx=(L;u&c9@{M!NCbdgCIb8qr
zI6FBzC!p@vIkYP(`78TjMcAUl_-}+Tg|}^6ITFN(r<Zj3=Q(#ku^z>DP!j|KSYYHM
z_<_XW<mSeevcm7=-23GJ)pRCMIqvQEe-bj5A;eLJDAS3|k_wedN)$;%8RM7=X;6kr
zWK439W=%q7k&sLs)T0a;I++?|mLb&tbDj71Kg(KYt@m}F=YH<{{(isLwfDaE?nXCA
zZssgjT~vR}%p+~YdX_(+NoC*O=O8r~H#{gElF2V4#3sybJq%K(VN1e+77$~Hd^xk;
zfvMULUn(b)SvK9{Ai*^Ms>u7tIX<ZBnJ;6r2co0%CZ(S2sCd12LT%U=E48AX9s0F@
z^A1U#FQb<a!ha0NrP~AKYN)2>!4u~7l04cmW5<fmKF=VQL7Bt|tpqUR?>_d8Pq}Pm
z3zu1UBt@JZ!PxWzC15&BR%WPM>C%;GeJ{OQVcNn^XZyFZ93HEjx?H{cuZyp0E+c0V
z_Y1rcoIOGSE#!nfhThGx<w^yz^J9$4$3)m9bsAZu@^)ILs@YP;eZ9oAs;H$I_lV+3
zwplEXxlmh@S@_RGF!YVZRwvP`SK75vBtp<M;TBa;@88wqxHz1!-Ckp@SS9<n2_B<@
z-HQXELi$0P%2B7R_aB^<g&WVuuhQ0!G$C~L3d3eB62`afjFPVrLEMR!PFz?KS&cIa
zjrS~~o0F6QY`zy3P3(X#6ZIA=#=_`T1VpI1=P9F>olF=64&45`|D1u-e$e35ZtFNG
z#NokJ3JHPzcuxmb9e7bs3EOt?;)ksOp)6=qXOsD96c%stn3*5RT)_RN4WFnNJvl*q
z0|<W=|0F?>01EpudNE)120P>9lM5*b^_k;zx_i)YX-++<4-!Q<nqdsq(+~{&L=p;`
zkq75yRX(w3J|OsI&_Y3Ew)(A2B(eg@oHNEb03GNfN5T9!HQ3bc>7))PJ@eGfQsJ!O
zkiKYPv74~%v1dW7%Cn0BTR0Nqa8~0{>_*guVF+MyVaD`fmf3B`JG{?!ORfL@;_q!v
zWB<PvVEcFc7OcvP&T@h7So8kZ2JE&!jmh8WdGlVcP~>nTHZM8t9%`%iST^WrU`xTQ
z=#b8Ol_Tw>zD&CIqqbHoTzL$Zv*RpHkJ&7YrQpK1t2sV`mni0}`3i1n8RZ3IHeGn|
z$N39SE(T0jyVO5%de!FB84p#=u9ht;0eC)xAI_X2wLc($PcDAcMgm4qTtXyHTiVwM
zj|VteQQFa+!<CHT@zhObS!1XfN^$1-(q;xl7Oc-zn9o8WB2bflM9&kAoHaew@gVj3
z)RUDf&zLUCFaO+yam5dNeU9JfIH$<YJF6X&Rz>XsRxGyUL~D=d1*<FMm&uxtUj*#K
z<L^s_q+mLPhIpsl4~~ktgbYL=(0r`wGd3&v$buKtp_`eJH%73L&nYv=vshh$QyT?{
z39d?0mVVVZY7HqWwS>4Vy?mKitbfI!<^la?re|><SQ$s%sZ|Qba>Dsad3$ERY&;Td
z|2Qd=5i8F9YEro;D=~vIQ?|nI|6-2fs%LU|B`Q$yIZ@NlDSD{tBy~IZ!gI_3EZH8d
zdDYZ-)x?78{!zE1%a5MS){n}^zA2Ofz?}vM0BagSgGMW>dO%HlRjjc7R@C#a87%y6
zp}8Lsb7WvvqBX1|Vy@*?MZKA;Jh`;=ptoHHIVX)IjFPGJT=o|-GP*^ZJBWEW9$6dy
z{dX2x8xEr(?>n@#9c5(16Jht35!o(1pH6yka!sE40RQ4T0*(;Uy1qDl_}4?4f)DuL
z%6lnJJe8eo#-|p0ifbkV^OFDWa&p0FqtyFz=FFLeP*xJ<bv1tX##H<K`SZ@*cb*K{
zlW||=?aWNo7H+4AQP`0GN&*aN016+D|HQ5@i$|6*M7wuYk+ny?TWYN}l2#nrq)UVo
z?Kq-3&4%bMI%MaI{v)KOE_WP1apDfg=~Le*<gQE~J2p4ecE%~yOSFrH$LEg6-fpY6
zO~x*(9?mBhv<4$Tw)oM&teq{L^eLf*PJ?{%;H;l@qT{JE#ro6nNiXsoA{me1c~lnA
zGJ1P#l3dQYsGVH4VPDS9JMNhVU4}0+8*P-BC8l?ndy9yG?;uxLvJv2NTDNKy^dHa=
zKiCyulfFsZt0+)hUWC@t$4DS3YcIks^)$w#e;+yW&Tv8HM74^|zefphxO>;GD-WH1
z^5`TrPLfLfO%m)5W$ZzAEx~YNg+cz6y-}#r3<go+H!1SsmjAq1FB^i`sZra_ua2k-
zbjes$?DwY2y{~@N@7s0M((;~^UYtSl<gFX;t*L%K{`%pCx7UP(JAc*dOPK1>nc2qz
zey%e1``Us&tkapcT`WQ{s^t{fK`TM&kbu`(Vnmf#*NSNOfBpAq-f5eI#%orX^Zw{R
z9n&UTvp%q4gUi*};q?9V`7>z6V=BFmFK@PWz39)qieB*S!U)j1W?}|}MBcXUL_$?4
zu`~@EHWa&jnyK~ZV=5Dk@L_36Jpoey=yw{7hTGu^HoSNBFV~hHFRM=Oaio#!SpNET
z7CxwZcMelx3x-~09gsi*N3%<&$9@odDsxpfFmVF}YJw3=JkcwJ`bFq>Y85el6X&w5
ztdfr}3<<MkapnR6Xk|yd;wWjvd{$qlKE+PTKNAc6ssr;dMLI{kR=PDql2niqKrCMV
zh>0`Kme$P_G!+|vYHT<$Y-%Iy;<dU`4_v-{nQ1bn)`Kl`Zhg(9PmruixP>_{mmhwg
zcm28ty=<fIJ5zcqMpWu3PrlGySbS5nnFX84_FA+-Zz8s(9$_EFQm8parv+d-tg3cQ
zDd?^tojIMFB-9QVHf$UvoArE$8fTzyspW7q7BK?N8xJphQtDOMX36OjMiTm^cccw9
zXj9b27gaxO^tKN$Q~OzO(>~0+?c3_=P6O5iegYjR!^ccK@)4R;9xy^oA~iOB)hr4}
z5e0F?1(ZkEZlRPD`8EH@u0YCK+>kCorOlf*6|uJf2ERr0XIRV@H)-y`NA?^z&0p6o
zyl>DSr<1)jX`jB-bUeT8I#n9(%5D<WCw&axsZV^x|J-ooe8bbo#jA98tsgBX%iuC4
z40d1|s0%Xu_se+yL$YEef)+4SIigsvRg-_8KkweYS?~;%1z#<7VuI>+|MYtV5}1v{
z{=R`9ogaJymXmyPx(PhO7ZuO7REV=aYA512TQPT!Md{@`ceXwAdoT$WS}Z-;EaXs6
z7^ji(WZ!qHH*D>@iRBGHbl069{Ya(SaVRnISD&c-)jO7?+Ox)E9(fHvFpiq7d|*H;
zNz(;mla^Yr<Ie8%%Thc^0nNAr<|^#l#p~#pI*;<zBn(Pg<|);mKiC718lsYB`Ggj}
zPgfN&4(wcSHmg;NW>(*d^u6=y?%FVx=45BLEdi!j*DcWR?(N$xrSQg&k%BHcGF?+4
zx$_+862+;@er%J}hK)dZYkX#j88((QD)JOLWiU=jDLy&|rkU&d&xwkaVO{Qj8t=6x
zj2Wm#+RW`&xu-Vd$isT=?fI|fbuse35zlLyINfB+q|}W$Ii_?^$L8E@qa1M+4V>hH
zkU4vWjT$K9c7@uelzRJA$L<CO>YyKj$q;0tf?_~9&76Y<8cadpz{7K1`d~GHrz7~~
z<w;gOJXLFbAJ@m4-mH79Xx@CwWIDAF2JF1^=VJ-VlyEPJQeFPsTsfjf;5D%zTW6+#
z6+?+opmKL&pU7q$VB+3Da@@u)fxjHmr&a`>rYJ!8Be|5eYrATFe{pgY{U*evg_|NQ
z(XUF^w|8C6+)U?w-w3E^PrV&}abEts6S5}?u)*A^ipwca3!|{%nCs*B+k)d&C~rKw
zc**t+UN}b0cx<mo8&^p#8@9w84sGqPkK@EM*rdmgK)zQZH}QQ!^R~nL&iv`eX002p
ztNQ|1r&5coq>J&U=hChzFJ0>T2DI0beOCYJr$_Y716I7WqHDWSTpa0bm%R)3P{4)+
zbXVf4CMd3&|EMI#K4QWklSY(i*C@7dTembypUKFnSV4+ZK|+4{+VRApV3j<hd;2Z>
zRa1IAo$OW^<LopHq00ToyrT0`nrg(rX*H)EypCHy#k<9UFT@f`LgHTE7Jtcq5z-W-
zy<PL>1m3YiL<%edqA3QJdP`MiOlK@a+F3c~7-pg1+3(mVI5|1_SZwU9enDQ`>p{M~
zFIKIMvg)DB^tuz{R9dEw_77Rq7!8GZc;aA~cyw*RRn85uZ-!`vKa^BFHX_8ohQ4Dp
z^zsQ{06maNXJI{nd@rHUI9Yf3Y>s4;PdhQM8?Pe;p}+?$-8nd3Kc4Wn?dfpu@d4we
zR>xdBm|NE4`t|FdX)tZGk}Sni178YRx4bsyM#<0m5J}8QEWk8fG{!?}d>jT+U84^b
z(*6lPS5xIAU>cL&S6Ff2iMB==&wSw(B(e!>$`+l6@9?(UdgGse%mG+}C#4qYC`QHn
zFfF)T7e+rE1upkba}A9Ld*2*~3XpZlVK8p0X+7?M;)fzux_Ce!B@W{OjA?r?JEcGH
z08`Q;9+1HWu#hW=tqM-ex6gRGAudgVLd83gToXYl!9VU%sf_mZt@V$zvFNfly@Am~
zQ*E^F$&9Wg)(k84PcSr{D<veidN$mOwCa_eEg=!c@M_~dh+hE9c`N5a!Tk1Vy*a5^
zkWzPc8oWR#=~<x3U+#}<Cn5!LcLN*I%1M6`^Vg%}78g0NLmRA%?W-74siPOWA=}r5
zt+KTLjI68o5~p56C`QC{7|;9CKmUY#t0%y<=)&_sQK@dp8xv(P19QDFin3jH>1Tl3
zsYuq-(21Ikv8@VHon=niE$^4PKrnIw!r~%$9mYfdha(o2<bzGBV@dl<e<(-Uj#l#<
zlIeUn6-~luP{UUz9)&+!{<Xhgv6$eCr*g|qgS$rOT5-@xHlEb>_y|&0U%7d+DX+3i
zPHjH}1IfyiyhLLfZyXxsDp-asp?#EV!gqrL%00otTqH`|e%&@<1$2mI9DX?}tt_%a
ztt)2Lx9~Tq-<*>Z_zg+Ww1k7PC2WF#=Al@>V6POyonSu|@JxgY*hMhgBaxY0N<2+?
zr_9+ma_COkOd6w@l8X^1F?4#opcpxAluFCo((m)@mc02PoMB?>%RO;4GYcB7r}z5s
z#9m)?pI#a4eJt=GTkEhlY}tDIRy|t-d9<zbi1qLn6m5IFw^_28l4W;YrX6XLjn{l?
z$hOA;BRR%}hcIFwojp@y6Xk|+U|nahY<bnWED8CE8>=STFpPlyDmfYVM_thlm~am|
ziSL!kF&yl$K9)03DYDfB_HDmqx=O1Z?`C(Z?O*-5CA;nDB7gv&eP5f|LFI5Fv;J-R
zN8DfkZNmV{ISy+94pFKt{_8L4Ld74JMGv*L5dP93X;L?YzLLsIR<C5G(+<<(#{ue8
zJj~QJ@~#L1R2opb!6x7<thbb`qT^%{)2*ifLdDVQyT?s@sOH`OyJy^n?8YB_E@X2m
zxDm7yGY$-ygJU*N8L(55%&p277&BlGVe0>#-+qOL7MG-OKokJ0=ebAU=RmN6b~H4J
z(J+Z|dpkPKu@CN(=)f^PQHh(l35@Cgu)Hp7@d{}G(8okZ9Hfz?^AXA<{LQlA2RhYl
zo7lw<*h{7|NJFNqiMW&M0GEZ9MAL*Iy>#>L(`>RrQ!8d2?bsPe%9{dm0whrC^3r?s
z`np}aDmb4uO3~LjqeoOeBYXsAQOv?%p;|WwL=%fsE{ju@|9<u*jBD53o=0MH2V{bL
z6G|Y83R>jc_l+8;AUojz4Bxs{EC6vZ7JL%;4sU;k9qK+<+&!i*4kI#PDQ2&RBX9kF
z#AddeR@=T|gLTanJu7t%DbIE@-!W+W_3?C>$7d5GZFQ#TEK6OI3B-`!x2DR%D703M
zZ)aQqlYlOb&$t@YfABlyg8%OCsQ&aFz>Vwgmf!nX`d^XE-XdzStq*_x_7IUA?jlL%
z-Iq7o!4kY#k@LJ$VtV?|jL1l*3XaScLq1+Y|EVc01NNYuz8zDyD4xofaS7KbYybNs
zV~>mY#E@Fs24*$9(Xu_>8utp5T|9S8N;P&w2jI!Ohid0k9LAuCw{ux{B2tEaQd(;!
z6>^^>unXQ=8*xCV5k-+UJ+ZLGk0*GfS*Y(;cE^yW!B=jwyY@$$J!C}{+8*)rLg08^
z!}M1Wn7Mq=PKx>gc&b6<954xR@fa5FLb~8!=Iy5Si8Sc(G`=@ae$7DM-9Q?`D~O`G
zruC?GsrDtQQLJaMgV|vh-)pO6TVOp!8oU}*%to>X;SLErNl<Uzye}U8V^vbDzAb3x
ztK;`Jg?NP3C^G}_*v-3t^4nt-GX&bK2pS;K8e!y8Vc@Rmq{><SA9_FI{FH>R0riku
zcg2JlBZB2_ivE0D8>5Gd?)C-X_(7Lx{QK9hFGFf-Vqw1jBS_}o4Pj)tv$nRizJsQ2
zs$-vOW>Q6H<m|lHGABSxy%B2TU{YzTSf1!NxTSXWDXUb+XM3!A%s6r4#D0$4iC%V_
ze^`Ms$aEht?+Xr9%Fpy`GmR2cN+uFmh+Rrkuv`ltpR?CumJFkqEJV$ci$}eU^3Q#n
zo_QRd3yIdBt@16o7lVCI1jE+Jvk>YWo;DPf7|$ZF3H9!JM50vF%Rp-=PIlU*Ik9y_
z(pkShH?h|NyDW>zh3)*_M%;Y$=>&rCI!?3G2ax9MdY3wcRz-BU@D%Kdsysnooe>tl
zxA6XS!yXM(7hvGRwfE^bIi-UA%*eFrQPnK=fcN%8@qZK*X%91q^7~9(Vm#r=kSY(R
z3}mDmFjoe*l;b~Z*61S;MTKGJ;Luuf@44^@yR?;DMF?jPtD&;Rzr8DUCLDUyMdMAB
zntP@Xjev)F$p>F&HbdgT8{r!KT;`6!JSux^PV1m!;@^ZqTXKA{a&j>&8Z>CoM}|8#
z^=xx<7COu~6-nQ-B2y=&_DM)c@Pn_aT2yQ8%&tLeC$_*4c?^XL@ANV1kKR@9nS&Ay
z3gE^#)IQwfhBIc|u5bMdH5JXjv!jE9Vbe=%l%q<5>NaM0tT<;(F71~cF)=X{^&)oO
zNo^}+Gj!-jU@d>9FQBgU0L4~Tk!~e(<qk7vZe#yX;8D{hlM8wUjp4>Iam!SLUL^XR
z41OKxdN@?GSza((_B)7{Oc=M6YZn`Tn~#<OmB4!5M9CyZMOC^cdGJBnY!tJiGZ#@e
zZw!&0J)@oUDNVSy`u>#JyUEYp>Aihu+=l2@=UjCln}*qRZMC<iqHye@y3R(csyAUs
z<qq^Ml3FTTEV`}cJ2-C5Cj<k%4z_jln(8p;O6!%Lj6v<<Wg3N%dV<-REg6$t22HH$
z7VK)U-DbiB?WObPUGrM8Lb>m8cZL|WFfJ7Y41kF)1l^v}@BMB|2B4*)mGnf(udb;o
zF1YG(pnk%#WycuP^EisoY^lPX8yup(>bQBc;O9kj9>3{vZ&W_aOt^15lx4~+f(Hb?
z$iPIVBvhHyD4i^v9`l#UJ6bI6;<CF4?Ve~vY;GTomMsJNwh7Bp^y>LEVQYn7b<GCt
zsQdt0&IJQGqcS?a3v7?<Raj9PSO#*yX?ybMoTd;0L5Wia+JgsYQANPB`rFLSwc|1N
z*W8j9t#}#nu5gOW2=l7A4(^!`y(l*$c@;gChCM`wN#iG8yP&yYLWFppnzFWUuf`7P
z#p3u3%D91T<~dNd%g7>@ZW_&6K$vsCcMXh+!s7dWt<Bq+TlNGZ?Mz_@H~-OD!F#bo
zlst4oqqs(#o8%hnWj}$d4QAbPV<lNyX?>NdC#}7KtFvDFEl)>ppVf1l`q$dzwxPM_
zmJ?QYkx7Hf_VIAr8_0Z)<y037?*H)Buz2CKu$YL&^N0<5ERBM-e(QGH+8OFinxvq^
z)lm$z`Zm$~*n_DDT@Ai{Vnb?i>SNh{(}<gMzQfKQqp_9dL=xI*U;v3+QlK}`nOve%
zln`@&crTYsuO~TS;o(;)&-;)RI!v)J(J#fcfG2ZrMy7N1i}&yQXTj8Rl{6-XoG(wZ
z{W?(WVX63^ZQM>Pt7He4G33C3DX>G~g!bQ74`PwgrApu$>Tjk3d^f1q_y!+&_~y(u
zg${*ZQ~oXpbbqW9+-WSK#Dmx{CDVvQPC0FN<1|vMAW~)jMCqZRlapc1%EP|h^z<6D
ziAVI&+}u7^<5uxVZb9IZ&g$jYD2!VYO>CBx^vvgLbw{eh<@meF9EGfcr<b>-wMOS9
z-u)7NF04EZry!JkD%!p=rvTG!_|c8J{_U+%lT$Hke&Y`6p<cQJ2JEQkjw&DP2Y&kW
zYP@)AVqhTP__b}?<4e~irzP=_sHH|DRTGUQf<P6-5s4?NBJ2I^vu*peU#%7}@yN6I
z4bdY?mYsXDks4rs01Azg0I&B;<rY9D6U23mmhD6FR5y6eectW!6u^;^5>La$Oo$<@
ztehlw(pIDE>G3$*Z#6MNpBjGH$Hm^|V)x85)_H#i0>9td+DiS5;qBf{Zl|d!!an3-
z;&{x56p|~foaQ(xVM_W=z-bBNUi(XnXORcUBL-$Psw@k<{r~;~By==*%<R>Q_g2Fk
z>bI${dY$?Fqt6+j(8oT-X-<t3J*xULsw?r91QlX7?iNtfj?SwI=Ez1{yJKW5N%v&V
zNGULQVH;dD?doU#0zZ-wg5|ERPX<wqG&k#5saKU#c=?X)A$%l;!JsV8VJkHl)$VPn
zK&6-y2%k&M9D;ysm(I|Hxzf$@wS+>&(@Dx_bJC&|T0{w28t^T;f==)z{bd(L>q@;e
zPwtJuSd*B*n>a(S;p2?4e9B6G=J&gHh@5{!k^uIpa~5&xHvau=;UNTGGAG5<9E3zD
z?<ED9nQ4)e5Q(y*|8wKUrVh=5b5(9|XPm~VjXaTg&h=e?YTH~4>|0i998PoSr76=*
z;&cMd`=zS5IiHWXBYFOnK?gW6C<Fw4k<~=8B)Sszg5M`H;^7nA@hiWAAbu=I?@&cM
zZqL1f%STjLfE`wxdxAWo><RnTt~;}Li@U8!fZStB^sCtD7Mxk?235PyyOWazbt({`
z=tA)T*vg#MY|e4Xt*0orE;qD6=1;JJMVqjf<B}$wi}KcR8s&X#(Y832(s#D9HOMdH
z1CJE%05{=giy=7>8W&rE$c+=rYN}ri2($E|%ww!$C(gw!o?j{99;a$|pSrsoxoR;h
zg|C>S6|{(rr7A(y?8I4CKwlIu1NSjS7oh!ako1p?G;#C^FU!2G(A)Hg3x4aAB{G99
zH%Vff{r!!FH<pD<Be<YAtzD(@HHZ$0(f-0g(-TB}SjDwL;p5cKzs@uqJov(WJSFFm
zdS3>=8S!rR1wKWW?Sn6q4FXX>8G#w#eOX3_<#xgQ=hD-n)lr3^j72Z;;p4~45UGVJ
z4!X*)aDpkBM%Hw2cXub&uUaE^uXo#;9~HA6*c!t}-Ggp;YJXt(>;>?nS>rq)47;Kz
zL0EScE(nWqzHA$NR4%PAG+1KWj(^f#!Kdb;vkc+Azl7`x(8HV~NU(u|octll$fN-l
z+LQW|M~qKkfqv<b#@f~U#)sy=TJrj%&t&@YD>A70G+`&ueK2J~fYuiznF~rUjw(5`
zbh~IIn2kato;c`DPb~Q;Q6<mve-e^)xN!2LO<Q<nP4#;#)15fojEuADQPMTy=KUS-
z;yl~)WlOa}b4O&sr@ce0QgOS?C2>mnM@}b(IRd`Zg0*8Vy5Pu+kyIB~E?<_N&*j?y
zsv<G?l(3q8`!<Ve1&9cYh0{_jOo87K*w`C6C4l*|quwAQ<m#kU?;b(viThLb@dQ^b
z5a;CwAnuPL&vZuRTzH2<A5s4c06w4ZAG#eh2@vQHtf2v)EBm<1>BV6*z_CoVgm?MQ
zW`OF#2iOh$^*YwobC@=2K}$-w0$NRtu@~6*7{E)6I3?N*kjj3xc6Mv^G@At|UhZ5H
z@2RF;U9!Pr!Gg079zOJW$&67;BnD%%#w|i54f))S@KHb^(F-vchfJm6|E9ez(dPmI
zNuQhFp;G@7=5)=PH8b&lRbKvr(#YqhXB+(_g`$OqwfShruYdCY?I5fYRYM$btBe`Y
zF>atY&VBam;JfQ~6B)Rah1z}Rf*i`ora|ky+dBF2)|u3GR-eBb>;2G!Z)fJP--;L+
zCx+2Wmb?o+%6r!pumkK)mGJDau%@=QwzGg5=*6}E_#>AQ)kB94ftNup^M_1;pC9~~
z<byp!eM(A3j(=~>%^Eq)g2#{;l|U{h6CuRB2oOL)2}(i7)EF;O1cX{V@&!-Meso(~
z3g)7vRd6D#Dgyev4|v+25EU;J2YNmoTWn(V@YH1FFsnrk_nJoEb?E+!pYAkdTVawE
z_i~GA(;kH$g)RfPTB~*Sz1nG8y`LY_NmGPZaLK3}@Uq_c1Ci!1DB$Cw(em`HEqn0I
zZQi_j4E1{adfPyJOy#6>7&GR|A8`|hD=sxxPH=o0yJ3dk#~=Q6hKm-xF@eW=agRnQ
zX#`RcNmg&p53*;1^QIz^moIB<%&z-0vCUm|oL!)TV=#cNcN&nYdu2tzU0=;SN0=y-
zSG#V<n7TQ-xYTC58n`t#v(DO*HvLQT@J5Q;pgQ)a7C%x7a{5acqIYq<s@l$-H}5&@
z3;8da#;uw(Tnl|O%wbMJyOE6)uU4G%4`jd)MDK7YZ|xFJ*~(Cp&F%_>Mw}IWnSOz&
zH8`jnX)|9CvG^NtrWaDTkH9=+5E$fEy0;|@&?{$!#-{|z>%<yp8bdrX56V*2$2u#l
z`*xFOHUZVCW?d^juvupCsU4#E3*H(Q4uLQDm1%4sVO?k~=}gXUP+wV9&!yEYeS+bJ
zBSpk*bQdlETD+K|bN78eRz1zBE<=mANwn5gG1hx(UflnS4*$WYmn(i8xp2W)pyP91
z=Un$7Mci`nx~;=Xd%XzB#6gzsy^wdbQ<(Wc^-I&0GaP@9om%ba^a$hs0prK#t5XfV
zIFD|DyOtrxr=;|OJT0HvwUxhG*HB*nz{1OR0ewsjqRxBKgER)fDp!8a?49;isL`9d
zddB0bg!RM6)rvbT<SJ9&-Un+P7d8uaClliIZ5DsYP|qT(qmbNRRJ&UgGe$ljGAAeJ
zC54$^p8LmEl)?LZ&5JeNk$Sffuk|iVsW=m2W4m6YysgyP?0x~cPg!!z+BE;)wKZPr
z%m%1`DH~qZR;~&`ao)bm^G-ZKrsKSnYjI_fC?{y<4Hw*zP(E``p(yJl<p{-El~}z4
z7KW{~s~sm84jnMSx$&%89>hw@=2Wa1tcN)`W=~}lhQW>T+qFj?a!fBCJ@D^-t%CM?
zcgS<~J~nwshGERz(!*2ILt%Yy%wiG>C-G5ynbUg)`hiH?WE_0NmOLXyRXV8njLX{M
z&MHhTQ5IsjqQCvR*Ua;HGZ5>*Q+3QH<t&&zvN>$+U;L)FW_p!+HeLmn?TSyY^*0HO
zijIzcMMhjW!UCYg_)X`4!|D5+aLNAW(zTUsqa9{hVM=2zY~{K}vkt_?mDRExYmwgZ
zkks5Q-fb<4oAN$`f=bOF39@KG*KHCsIq`h2+ZJjgouZr-{-|9aJT562iV7?9fBjZi
zyk{^9Ip#A6g{i#-bLzj&?3m)xv;zI7sV<gkBQ4ge2etM$F)ctT;>#WPC$gcUq9A9R
z=4T-2U$p$rIcu|Hk01Z^s=noy;mR4izs8zc_g4DTW;fUx9=`9-X~#F3V(4B`rEJ-{
z_iKtb>h6go4{T1Hw9wbWBCmnsfz@h<l2G+kX%|0G=RHFgRW7x_9q1+R+yDH-N-hfQ
zLlMT|)J{#k^A7yk6TuIH6-y%C#h>iJBMx|RtNe2Zc2-(_btn61qe$NK={&3&Q}!Y8
z#VMol1r`}eJJq;>mHtx;2X19eB%_GW1`pk@U68eMQ8vBB<pub8d>J^(VmI^Gv>b>O
z`_l1WrOZMySfUmi?)`^FHf5<(X{CzRLU;G$d-L2M+5bH-Pu`F$wtepRpOXNh*`sf1
zbROPSZHJ44L#FzrHHto07IHlmvy%5-{ZVglPvcEtLa4H|G^UjB<AOgIrAlES-sKEo
zIz2nT+J5`(d7<o_T^06LXB>)hz&G5xw^dvOc`)r2d20$DYqNRG9Si(EI!^HUQqh{i
zRWFSAnu{0Lx~y6AW0k@|(J=9Gue3h$m3L;kxz&$k?)iO2M#iI3|IaN0i&7l=ky)Xf
zp}B!=6TihtYlv@fAUVWJFXHW#UYenb3*DbuI>c;NUu847LQ!$M{ByERlCm31J2H^g
z&ywL2ae;nnSv(fKm=xvYrA#9s=IXo?kCHczDbp#KTHGrnVMDaiJVasn_ujp>nqlTM
zkoP1}C=Ap=t<-7gVympJ-KBp9qpeCwN!g5xm-_bW=cfViHo4SM(MB1d>C~3rFgUtf
z&}jJUx;9}~&vTp~Cz-D!1k$ErB#z3z9JPHuK5s<*xEr0}dW0~i*R319c<$U+hKdd<
zo2<V%I8KlY(W_O|GV#1NV`8rm*{DVVj?AP`tD$7A9Qmo!7=tLOf|y^N3cD+Yxrg1E
zykaV<N6;S%&5dn)r%homTG+RJ&=P!m5?Z!s5n`33v_v<pB$M&VS++0e8vUo^0@j0N
z;36_U0Bzx|#Ka!zQTew4P3I>~s$8h}W@hi0aI%SZwPuZ4b436LXsbw@8b)4B&TzET
zE)A_NOi*JQmMah36%{4J0c9wFWRA9?s-j|ddT~{AuFAM>xKGk<Z(WO>V_2=fv!^I7
zOt7`J+?4nH9aus$hLvY9;xHEZ`pLf@@0po(RF@ML<ZU#~1;BA5L=;ma_v|^2vTq3y
z0|y!{>-go=;LWu`>Z>-_F72n#R`H>x`PR6=sYjb>BZm)f0{3#uYxU{}tC_OnDK?q!
z83NTq!CD4tq=a-Ef6z4W4nd$xciYTeKe5*Zm9DJ=tLrTLADvuO8oMDnKJ9uFv-$0}
z6z36_9pl_@RoSxPzUT&5pqf3%8E_sjN*WL!W1Y(TzSh7Wg9f$zUoDv0Z^#fQq+RZ@
zlTv$d^EKe4kNms6Tb&|k$1(#8L&|qeC$D{~%NqPkJYu!_C3c&kLkA6tD0%$2Z}fo!
zK8$28R#Q_O%n%bV(ws$atSGs-T&$sOVM6n<jy8u<%c34@3}M(VXgAvGp9-a-hw6=<
z(`_C8ksYzvpncFDMTtrUB~sOqDd{7rou{|ol7#19x4)E$VSqZXYdKfSOG-+vz^KD^
zgy2Vol(OtsAoFN4x4@t@aVd={N2+*J3G6xDPhUUO$=Ufvabe+3uX9g^DJJFT=LhC?
zi7M=(>eJMBM0C7oXMUc=w%$R96#G;b+?sddE#5qTC~hZBS_o?IdG*zbx%{YR0L09!
z{A~v^wet4u+ciLoDN8*)CH0AEPfSE$mIA*kA3UhfKMGFFZJd~1Oz<MJXZ-21w!XYx
zFY5n_(643bDJfP{TwVM1#SDE<WMnE*jA`&ezTJ0P#pISbk|R~F;?uiTlY?MJQHq%_
zwyTxQR7vUaRr^q{Kh5Q4xn(K(sSN)9eZ0N>(QZ-srwZ@gJ5f|vXgD>!*s@RL=9WPj
zlTsggp4!L1zU;P1I>-hy8BY!Vm!v7_E1mo8*_G$sn}3aAl!1xD1jZm&0Fj>KjX99#
zZoSgmd!y&6EOxBywp;Sn^odN<GP_yopRGD7;y`?_&GN_ddcCSn`RefGDfLGc{9|ol
LXMSYNto8p7hPfu2

literal 0
HcmV?d00001

diff --git a/docs/upload_handling.txt b/docs/topics/http/file-uploads.txt
similarity index 94%
rename from docs/upload_handling.txt
rename to docs/topics/http/file-uploads.txt
index 488778a4e4..54edd9e72d 100644
--- a/docs/upload_handling.txt
+++ b/docs/topics/http/file-uploads.txt
@@ -1,16 +1,18 @@
+.. _topics-file-uploads:
+
 ============
 File Uploads
 ============
 
+.. currentmodule:: django.core.files
+
 **New in Django development version**
 
 Most Web sites wouldn't be complete without a way to upload files. When Django
 handles a file upload, the file data ends up placed in ``request.FILES`` (for
-more on the ``request`` object see the documentation for `request and response
-objects`_). This document explains how files are stored on disk and in memory,
-and how to customize the default behavior.
-
-.. _request and response objects: ../request_response/#attributes
+more on the ``request`` object see the documentation for :ref:`request and
+response objects <ref-request-response>`). This document explains how files are
+stored on disk and in memory, and how to customize the default behavior.
 
 Basic file uploads
 ==================
@@ -29,7 +31,7 @@ other ``FileField`` subclass) in the form. So the data from the above form would
 be accessible as ``request.FILES['file']``.
 
 Most of the time, you'll simply pass the file data from ``request`` into the
-form as described in `binding uploaded files to a form`_. This would look
+form as described in :ref:`binding-uploaded-files`. This would look
 something like::
 
     from django.http import HttpResponseRedirect
@@ -48,8 +50,6 @@ something like::
             form = UploadFileForm()
         return render_to_response('upload.html', {'form': form})
 
-.. _binding uploaded files to a form: ../forms/#binding-uploaded-files-to-a- form
-
 Notice that we have to pass ``request.FILES`` into the form's constructor; this
 is how file data gets bound into a form.
 
@@ -120,7 +120,7 @@ upload behavior.
 Changing upload handler behavior
 --------------------------------
 
-Three `settings`_ control Django's file upload behavior:
+Three settings control Django's file upload behavior:
 
     ``FILE_UPLOAD_MAX_MEMORY_SIZE``
         The maximum size, in bytes, for files that will be uploaded
@@ -150,13 +150,13 @@ Three `settings`_ control Django's file upload behavior:
         Which means "try to upload to memory first, then fall back to temporary
         files."
 
-.. _settings: ../settings/
-
 ``UploadedFile`` objects
 ========================
 
-In addition to those inherited from `File`_, all ``UploadedFile`` objects define
-the following methods/attributes:
+.. class:: UploadedFile
+
+In addition to those inherited from :class:`File`, all ``UploadedFile`` objects
+define the following methods/attributes:
 
     ``UploadedFile.content_type``
         The content-type header uploaded with the file (e.g. ``text/plain`` or
@@ -173,8 +173,6 @@ the following methods/attributes:
         Only files uploaded onto disk will have this method; it returns the full
         path to the temporary uploaded file.
 
-.. _File: ../files/
-
 Upload Handlers
 ===============
 
@@ -206,7 +204,7 @@ would any other list.
 
 For instance, suppose you've written a ``ProgressBarUploadHandler`` that
 provides feedback on upload progress to some sort of AJAX widget. You'd add this
-handler to your upload handers like this::
+handler to your upload handlers like this::
 
     request.upload_handlers.insert(0, ProgressBarUploadHandler())
 
@@ -328,4 +326,3 @@ attributes:
         Return ``None`` if you want upload handling to continue, or a tuple of
         ``(POST, FILES)`` if you want to return the new data structures suitable
         for the request directly.
-
diff --git a/docs/topics/http/generic-views.txt b/docs/topics/http/generic-views.txt
new file mode 100644
index 0000000000..5aa2c48ea5
--- /dev/null
+++ b/docs/topics/http/generic-views.txt
@@ -0,0 +1,7 @@
+.. _topics-http-generic-views:
+
+=============
+Generic views
+=============
+
+See :ref:`ref-generic-views`.
\ No newline at end of file
diff --git a/docs/topics/http/index.txt b/docs/topics/http/index.txt
new file mode 100644
index 0000000000..ae73c2c29b
--- /dev/null
+++ b/docs/topics/http/index.txt
@@ -0,0 +1,17 @@
+.. _topics-http-index:
+
+Handling HTTP requests
+======================
+
+Information on handling HTTP requests in Django:
+
+.. toctree::
+   :maxdepth: 1
+   
+   urls
+   views
+   file-uploads
+   shortcuts
+   generic-views
+   middleware
+   sessions
diff --git a/docs/topics/http/middleware.txt b/docs/topics/http/middleware.txt
new file mode 100644
index 0000000000..d5b36ea7e3
--- /dev/null
+++ b/docs/topics/http/middleware.txt
@@ -0,0 +1,169 @@
+.. _topics-http-middleware:
+
+==========
+Middleware
+==========
+
+Middleware is a framework of hooks into Django's request/response processing.
+It's a light, low-level "plugin" system for globally altering Django's input
+and/or output.
+
+Each middleware component is responsible for doing some specific function. For
+example, Django includes a middleware component, ``XViewMiddleware``, that adds
+an ``"X-View"`` HTTP header to every response to a ``HEAD`` request.
+
+This document explains how middleware works, how you activate middleware, and
+how to write your own middleware. Django ships with some built-in middleware you
+can use right out of the box; they're documented in the :ref:`built-in
+middleware guide <ref-middleware>`.
+
+Activating middleware
+=====================
+
+To activate a middleware component, add it to the :setting:`MIDDLEWARE_CLASSES`
+list in your Django settings. In :setting:`MIDDLEWARE_CLASSES`, each middleware
+component is represented by a string: the full Python path to the middleware's
+class name. For example, here's the default :setting:`MIDDLEWARE_CLASSES`
+created by :djadmin:`django-admin.py startproject <startproject>`::
+
+    MIDDLEWARE_CLASSES = (
+        'django.middleware.common.CommonMiddleware',
+        'django.contrib.sessions.middleware.SessionMiddleware',
+        'django.contrib.auth.middleware.AuthenticationMiddleware',
+        'django.middleware.doc.XViewMiddleware',
+    )
+
+During the request phases (:meth:`process_request` and :meth:`process_view`
+middleware), Django applies middleware in the order it's defined in
+:setting:`MIDDLEWARE_CLASSES`, top-down. During the response phases
+(:meth:`process_response` and :meth:`process_exception` middleware), the classes
+are applied in reverse order, from the bottom up. You can think of it like an
+onion: each middleware class is a "layer" that wraps the view:
+
+.. image:: _images/middleware.png
+   :width: 502
+   :height: 417
+   :alt: Middleware application order.
+
+A Django installation doesn't require any middleware -- e.g.,
+:setting:`MIDDLEWARE_CLASSES` can be empty, if you'd like -- but it's strongly
+suggested that you at least use
+:class:`~django.middleware.common.CommonMiddleware`.
+
+Writing your own middleware
+===========================
+
+Writing your own middleware is easy. Each middleware component is a single
+Python class that defines one or more of the following methods:
+
+.. _request-middleware:
+
+``process_request``
+-------------------
+
+.. method:: process_request(self, request)
+
+``request`` is an :class:`~django.http.HttpRequest` object. This method is
+called on each request, before Django decides which view to execute.
+
+``process_request()`` should return either ``None`` or an
+:class:`~django.http.HttpResponse` object. If it returns ``None``, Django will
+continue processing this request, executing any other middleware and, then, the
+appropriate view. If it returns an :class:`~django.http.HttpResponse` object,
+Django won't bother calling ANY other request, view or exception middleware, or
+the appropriate view; it'll return that :class:`~django.http.HttpResponse`.
+Response middleware is always called on every response.
+
+.. _view-middleware:
+
+``process_view``
+----------------
+
+.. method:: process_view(self, request, view_func, view_args, view_kwargs)
+
+``request`` is an :class:`~django.http.HttpRequest` object. ``view_func`` is the
+Python function that Django is about to use. (It's the actual function object,
+not the name of the function as a string.) ``view_args`` is a list of positional
+arguments that will be passed to the view, and ``view_kwargs`` is a dictionary
+of keyword arguments that will be passed to the view. Neither ``view_args`` nor
+``view_kwargs`` include the first view argument (``request``).
+
+``process_view()`` is called just before Django calls the view. It should return
+either ``None`` or an :class:`~django.http. HttpResponse` object. If it returns
+``None``, Django will continue processing this request, executing any other
+``process_view()`` middleware and, then, the appropriate view. If it returns an
+:class:`~django.http. HttpResponse` object, Django won't bother calling ANY
+other request, view or exception middleware, or the appropriate view; it'll
+return that :class:`~django.http. HttpResponse`. Response middleware is always
+called on every response.
+
+.. _response-middleware:
+
+``process_response``
+--------------------
+
+.. method:: process_response(self, request, response)
+
+``request`` is an :class:`~django.http.HttpRequest` object. ``response`` is the
+:class:`~django.http. HttpResponse` object returned by a Django view.
+
+``process_response()`` should return an :class:`~django.http. HttpResponse`
+object. It could alter the given ``response``, or it could create and return a
+brand-new :class:`~django.http. HttpResponse`.
+
+.. _exception-middleware:
+
+``process_exception``
+---------------------
+
+.. method:: process_exception(self, request, exception)
+
+``request`` is an :class:`~django.http.HttpRequest` object. ``exception`` is an
+``Exception`` object raised by the view function.
+
+Django calls ``process_exception()`` when a view raises an exception.
+``process_exception()`` should return either ``None`` or an
+:class:`~django.http. HttpResponse` object. If it returns an
+:class:`~django.http. HttpResponse` object, the response will be returned to the
+browser. Otherwise, default exception handling kicks in.
+
+``__init__``
+------------
+
+Most middleware classes won't need an initializer since middleware classes are
+essentially placeholders for the ``process_*`` methods. If you do need some
+global state you may use ``__init__`` to set up. However, keep in mind a couple
+of caveats:
+
+    * Django initializes your middleware without any arguments, so you can't
+      define ``__init__`` as requiring any arguments.
+      
+    * Unlike the ``process_*`` methods which get called once per request,
+      ``__init__`` gets called only *once*, when the web server starts up.
+
+Marking middleware as unused
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It's sometimes useful to determine at run-time whether a piece of middleware
+should be used. In these cases, your middleware's ``__init__`` method may raise
+``django.core.exceptions.MiddlewareNotUsed``. Django will then remove that piece
+of middleware from the middleware process.
+
+Guidelines
+----------
+
+    * Middleware classes don't have to subclass anything.
+
+    * The middleware class can live anywhere on your Python path. All Django
+      cares about is that the :setting:`MIDDLEWARE_CLASSES` setting includes the
+      path
+      to it.
+
+    * Feel free to look at :mod:`Django's available middleware for examples
+      <django.middleware>`. The core Django middleware classes are in
+      ``django/middleware/`` in the Django distribution. The session middleware
+      is in ``django/contrib/sessions``.
+
+    * If you write a middleware component that you think would be useful to
+      other people, contribute to the community! :ref:`Let us know
+      <internals-contributing>`, and we'll consider adding it to Django.
diff --git a/docs/sessions.txt b/docs/topics/http/sessions.txt
similarity index 97%
rename from docs/sessions.txt
rename to docs/topics/http/sessions.txt
index f828c76bde..35dc67658d 100644
--- a/docs/sessions.txt
+++ b/docs/topics/http/sessions.txt
@@ -1,3 +1,5 @@
+.. _topics-http-sessions:
+
 ===================
 How to use sessions
 ===================
@@ -10,7 +12,7 @@ Cookies contain a session ID -- not the data itself.
 Enabling sessions
 =================
 
-Sessions are implemented via a piece of middleware_.
+Sessions are implemented via a piece of :ref:`middleware <ref-middleware>`.
 
 To enable session functionality, do the following:
 
@@ -30,8 +32,6 @@ If you don't want to use sessions, you might as well remove the
 ``SessionMiddleware`` line from ``MIDDLEWARE_CLASSES`` and ``'django.contrib.sessions'``
 from your ``INSTALLED_APPS``. It'll save you a small bit of overhead.
 
-.. _middleware: ../middleware/
-
 Configuring the session engine
 ==============================
 
@@ -49,7 +49,7 @@ To use file-based sessions, set the ``SESSION_ENGINE`` setting to
 ``"django.contrib.sessions.backends.file"``.
 
 You might also want to set the ``SESSION_FILE_PATH`` setting (which defaults
-to output from ``tempfile.gettempdir()``, most likely  ``/tmp``) to control
+to output from ``tempfile.gettempdir()``, most likely ``/tmp``) to control
 where Django stores session files. Be sure to check that your Web server has
 permissions to read and write to this location.
 
@@ -58,7 +58,7 @@ Using cache-based sessions
 
 To store session data using Django's cache system, set ``SESSION_ENGINE``
 to ``"django.contrib.sessions.backends.cache"``. You'll want to make sure
-you've configured your cache; see the `cache documentation`_ for details.
+you've configured your cache; see the :ref:`cache documentation <topics-cache>` for details.
 
 .. _cache documentation: ../cache/
 
@@ -373,7 +373,7 @@ in the past -- but your application may have different requirements.
 Settings
 ========
 
-A few `Django settings`_ give you control over session behavior:
+A few :ref:`Django settings <ref-settings>` give you control over session behavior:
 
 SESSION_ENGINE
 --------------
diff --git a/docs/shortcuts.txt b/docs/topics/http/shortcuts.txt
similarity index 82%
rename from docs/shortcuts.txt
rename to docs/topics/http/shortcuts.txt
index 005fdc3029..48d294ff4f 100644
--- a/docs/shortcuts.txt
+++ b/docs/topics/http/shortcuts.txt
@@ -1,3 +1,5 @@
+.. _topics-http-shortcuts:
+
 =========================
 Django shortcut functions
 =========================
@@ -25,14 +27,15 @@ Optional arguments
 ``dictionary``
     A dictionary of values to add to the template context. By default, this
     is an empty dictionary. If a value in the dictionary is callable, the
-    view will call it just before rendering  the template.
+    view will call it just before rendering the template.
 
 ``context_instance``
     The context instance to render the template with. By default, the template
     will be rendered with a ``Context`` instance (filled with values from
-    ``dictionary``). If you need to use `context processors`_, render the
-    template with a ``RequestContext`` instance instead. Your code might look
-    something like this::
+    ``dictionary``). If you need to use :ref:`context processors
+    <subclassing-context-requestcontext>`, render the template with a
+    ``RequestContext`` instance instead. Your code might look something like
+    this::
 
         return render_to_response('my_template.html',
                                   my_data_dictionary,
@@ -43,8 +46,6 @@ Optional arguments
     resulting document. Defaults to the value of the ``DEFAULT_CONTENT_TYPE``
     setting.
 
-.. _`context processors`: ../templates_python/#subclassing-context-requestcontext
-
 Example
 -------
 
@@ -73,9 +74,9 @@ This example is equivalent to::
 ``get_object_or_404``
 =====================
 
-``django.shortcuts.get_object_or_404`` calls `get()`_ on a given model
-manager, but it raises ``django.http.Http404`` instead of the model's
-``DoesNotExist`` exception.
+``django.shortcuts.get_object_or_404`` calls
+:meth:`~django.db.models.QuerySet.get()` on a given model manager, but it raises
+``django.http.Http404`` instead of the model's ``DoesNotExist`` exception.
 
 Required arguments
 ------------------
@@ -112,14 +113,12 @@ This example is equivalent to::
 Note: As with ``get()``, an ``MultipleObjectsReturned`` exception will be
 raised if more than one object is found.
 
-.. _get(): ../db-api/#get-kwargs
-
 ``get_list_or_404``
 ===================
 
-``django.shortcuts.get_list_or_404`` returns the result of `filter()`_ on a
-given model manager, raising ``django.http.Http404`` if the resulting list is
-empty.
+``django.shortcuts.get_list_or_404`` returns the result of
+:meth:`~django.db.models.QuerySet.filter()` on a given model manager, raising
+``django.http.Http404`` if the resulting list is empty.
 
 Required arguments
 ------------------
@@ -149,6 +148,4 @@ This example is equivalent to::
     def my_view(request):
         my_objects = MyModel.objects.filter(published=True)
         if not my_objects:
-            raise Http404
-
-.. _filter(): ../db-api/#filter-kwargs
+            raise Http404
\ No newline at end of file
diff --git a/docs/url_dispatch.txt b/docs/topics/http/urls.txt
similarity index 92%
rename from docs/url_dispatch.txt
rename to docs/topics/http/urls.txt
index 266e4a5799..8c575cfcb5 100644
--- a/docs/url_dispatch.txt
+++ b/docs/topics/http/urls.txt
@@ -1,3 +1,5 @@
+.. _topics-http-urls:
+
 ==============
 URL dispatcher
 ==============
@@ -26,6 +28,8 @@ This mapping can be as short or as long as needed. It can reference other
 mappings. And, because it's pure Python code, it can be constructed
 dynamically.
 
+.. _how-django-processes-a-request:
+
 How Django processes a request
 ==============================
 
@@ -33,22 +37,21 @@ When a user requests a page from your Django-powered site, this is the
 algorithm the system follows to determine which Python code to execute:
 
     1. Django determines the root URLconf module to use. Ordinarily,
-       this is the value of the ``ROOT_URLCONF`` setting in your
-       `settings file`_, but if the incoming ``HttpRequest`` object
-       has an attribute called ``urlconf``, its value will be used in
-       place of the ``ROOT_URLCONF`` setting.
+       this is the value of the ``ROOT_URLCONF`` setting, but if the incoming
+       ``HttpRequest`` object has an attribute called ``urlconf``, its value
+       will be used in place of the ``ROOT_URLCONF`` setting.
+    
     2. Django loads that Python module and looks for the variable
        ``urlpatterns``. This should be a Python list, in the format returned by
        the function ``django.conf.urls.defaults.patterns()``.
+    
     3. Django runs through each URL pattern, in order, and stops at the first
        one that matches the requested URL.
+    
     4. Once one of the regexes matches, Django imports and calls the given
-       view, which is a simple Python function. The view gets passed a
-       `request object`_ as its first argument and any values captured in the
-       regex as remaining arguments.
-
-.. _settings file: ../settings/
-.. _request object: ../request_response/#httprequest-objects
+       view, which is a simple Python function. The view gets passed an
+       :class:`~django.http.HttpRequest`` as its first argument and any values
+       captured in the regex as remaining arguments.
 
 Example
 =======
@@ -306,7 +309,7 @@ The view prefix
 You can specify a common prefix in your ``patterns()`` call, to cut down on
 code duplication.
 
-Here's the example URLconf from the `Django overview`_::
+Here's the example URLconf from the :ref:`Django overview <intro-overview>`::
 
     from django.conf.urls.defaults import *
 
@@ -334,8 +337,6 @@ With this in mind, the above example can be written more concisely as::
 Note that you don't put a trailing dot (``"."``) in the prefix. Django puts
 that in automatically.
 
-.. _Django overview: ../overview/
-
 Multiple view prefixes
 ----------------------
 
@@ -432,11 +433,9 @@ In this example, for a request to ``/blog/2005/``, Django will call the
 
     year='2005', foo='bar'
 
-This technique is used in `generic views`_ and in the `syndication framework`_
-to pass metadata and options to views.
-
-.. _generic views: ../generic_views/
-.. _syndication framework: ../syndication_feeds/
+This technique is used in :ref:`generic views <ref-generic-views>` and in the
+:ref:`syndication framework <ref-contrib-syndication>` to pass metadata and
+options to views.
 
 .. admonition:: Dealing with conflicts
 
@@ -483,7 +482,7 @@ Set two::
 Note that extra options will *always* be passed to *every* line in the included
 URLconf, regardless of whether the line's view actually accepts those options
 as valid. For this reason, this technique is only useful if you're certain that
-every view in the the included URLconf accepts the extra options you're passing.
+every view in the included URLconf accepts the extra options you're passing.
 
 Passing callable objects instead of strings
 ===========================================
@@ -528,6 +527,8 @@ The style you use is up to you.
 Note that if you use this technique -- passing objects rather than strings --
 the view prefix (as explained in "The view prefix" above) will have no effect.
 
+.. _naming-url-patterns:
+
 Naming URL patterns
 ===================
 
@@ -543,10 +544,10 @@ view::
     )
 
 This is completely valid, but it leads to problems when you try to do reverse
-URL matching (through the ``permalink()`` decorator or the ``{% url %}``
-`template tag`_). Continuing this example, if you wanted to retrieve the URL for
-the ``archive`` view, Django's reverse URL matcher would get confused, because
-*two* URLpatterns point at that view.
+URL matching (through the ``permalink()`` decorator or the :ttag:`url` template
+tag. Continuing this example, if you wanted to retrieve the URL for the
+``archive`` view, Django's reverse URL matcher would get confused, because *two*
+URLpatterns point at that view.
 
 To solve this problem, Django supports **named URL patterns**. That is, you can
 give a name to a URL pattern in order to distinguish it from other patterns
@@ -561,7 +562,9 @@ Here's the above example, rewritten to used named URL patterns::
     )
 
 With these names in place (``full-archive`` and ``arch-summary``), you can
-target each pattern individually by using its name::
+target each pattern individually by using its name:
+
+.. code-block:: html+django
 
     {% url arch-summary 1945 %}
     {% url full-archive 2007 %}
@@ -584,15 +587,13 @@ not restricted to valid Python names.
     name, will decrease the chances of collision. We recommend something like
     ``myapp-comment`` instead of ``comment``.
 
-.. _template tag: ../templates/#url
-
 Utility methods
 ===============
 
 reverse()
 ---------
 
-If you need to use something similar to the ``{% url %}`` `template tag`_ in
+If you need to use something similar to the :ttag:`url` template tag in
 your code, Django provides the ``django.core.urlresolvers.reverse()``. The
 ``reverse()`` function has the following signature::
 
@@ -614,9 +615,6 @@ arguments to use in the URL matching. For example::
 permalink()
 -----------
 
-The ``permalink()`` decorator is useful for writing short methods that return
-a full URL path. For example, a model's ``get_absolute_url()`` method. Refer
-to the `model API documentation`_ for more information about ``permalink()``.
-
-.. _model API documentation: ../model-api/#the-permalink-decorator
-
+The :func:`django.db.models.permalink` decorator is useful for writing short
+methods that return a full URL path. For example, a model's
+``get_absolute_url()`` method. See :func:`django.db.models.permalink` for more.
diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt
new file mode 100644
index 0000000000..3b981c0442
--- /dev/null
+++ b/docs/topics/http/views.txt
@@ -0,0 +1,186 @@
+.. _topics-http-views:
+
+=============
+Writing Views
+=============
+
+A view function, or *view* for short, is simply a Python function that takes a
+Web request and returns a Web response. This response can be the HTML contents
+of a Web page, or a redirect, or a 404 error, or an XML document, or an image .
+. . or anything, really. The view itself contains whatever arbitrary logic is
+necessary to return that response. This code can live anywhere you want, as long
+as it's on your Python path. There's no other requirement--no "magic," so to
+speak. For the sake of putting the code *somewhere*, let's create a file called
+``views.py`` in the ``mysite`` directory, which you created in the previous
+chapter.
+
+A simple view
+=============
+
+Here's a view that returns the current date and time, as an HTML document:
+
+.. code-block:: python
+
+    from django.http import HttpResponse
+    import datetime
+
+    def current_datetime(request):
+        now = datetime.datetime.now()
+        html = "<html><body>It is now %s.</body></html>" % now
+        return HttpResponse(html)
+
+Let's step through this code one line at a time:
+
+    * First, we import the class ``HttpResponse``, which lives in the
+      ``django.http`` module, along with Python's ``datetime`` library.
+
+    * Next, we define a function called ``current_datetime``. This is the view
+      function. Each view function takes an ``HttpRequest`` object as its first
+      parameter, which is typically named ``request``.
+
+      Note that the name of the view function doesn't matter; it doesn't have to
+      be named in a certain way in order for Django to recognize it. We're
+      calling it ``current_datetime`` here, because that name clearly indicates
+      what it does.
+
+    * The view returns an ``HttpResponse`` object that contains the
+      generated response. Each view function is responsible for returning an
+      ``HttpResponse`` object. (There are exceptions, but we'll get to those
+      later.)
+
+.. admonition:: Django's Time Zone
+    
+    Django includes a ``TIME_ZONE`` setting that defaults to
+    ``America/Chicago``. This probably isn't where you live, so you might want
+    to change it in your settings file.
+
+Mapping URLs to Views
+=====================
+
+So, to recap, this view function returns an HTML page that includes the current
+date and time. To display this view at a particular URL, you'll need to create a
+*URLconf*; see :ref:`topics-http-urls` for instructions.
+
+Returning errors
+================
+
+Returning HTTP error codes in Django is easy. We've already mentioned the
+:class:`HttpResponseNotFound`, :class:`HttpResponseForbidden`,
+:class:`HttpResponseServerError`, etc., subclasses; just return an instance of one
+of those subclasses instead of a normal :class:`HttpResponse` in order to signify
+an error. For example::
+
+    def my_view(request):
+        # ...
+        if foo:
+            return HttpResponseNotFound('<h1>Page not found</h1>')
+        else:
+            return HttpResponse('<h1>Page was found</h1>')
+
+Because 404 errors are by far the most common HTTP error, there's an easier way
+to handle those errors.
+
+The Http404 exception
+---------------------
+
+When you return an error such as ``HttpResponseNotFound``, you're responsible
+for defining the HTML of the resulting error page::
+
+    return HttpResponseNotFound('<h1>Page not found</h1>')
+
+For convenience, and because it's a good idea to have a consistent 404 error page
+across your site, Django provides an ``Http404`` exception. If you raise
+``Http404`` at any point in a view function, Django will catch it and return the
+standard error page for your application, along with an HTTP error code 404.
+
+Example usage::
+
+    from django.http import Http404
+
+    def detail(request, poll_id):
+        try:
+            p = Poll.objects.get(pk=poll_id)
+        except Poll.DoesNotExist:
+            raise Http404
+        return render_to_response('polls/detail.html', {'poll': p})
+
+In order to use the ``Http404`` exception to its fullest, you should create a
+template that is displayed when a 404 error is raised. This template should be
+called ``404.html`` and located in the top level of your template tree.
+
+Customizing error views
+=======================
+
+The 404 (page not found) view
+-----------------------------
+
+When you raise an ``Http404`` exception, Django loads a special view devoted
+to handling 404 errors. By default, it's the view
+``django.views.defaults.page_not_found``, which loads and renders the template
+``404.html``.
+
+This means you need to define a ``404.html`` template in your root template
+directory. This template will be used for all 404 errors.
+
+This ``page_not_found`` view should suffice for 99% of Web applications, but if
+you want to override the 404 view, you can specify ``handler404`` in your
+URLconf, like so::
+
+    handler404 = 'mysite.views.my_custom_404_view'
+
+Behind the scenes, Django determines the 404 view by looking for ``handler404``.
+By default, URLconfs contain the following line::
+
+    from django.conf.urls.defaults import *
+
+That takes care of setting ``handler404`` in the current module. As you can see
+in ``django/conf/urls/defaults.py``, ``handler404`` is set to
+``'django.views.defaults.page_not_found'`` by default.
+
+Three things to note about 404 views:
+
+    * The 404 view is also called if Django doesn't find a match after checking
+      every regular expression in the URLconf.
+
+    * If you don't define your own 404 view -- and simply use the
+      default, which is recommended -- you still have one obligation:
+      you must create a ``404.html`` template in the root of your
+      template directory. The default 404 view will use that template
+      for all 404 errors. The default 404 view will pass one variable
+      to the template: ``request_path``, which is the URL that resulted
+      in the 404.
+
+    * The 404 view is passed a ``RequestContext`` and will have access to
+      variables supplied by your ``TEMPLATE_CONTEXT_PROCESSORS`` setting (e.g.,
+      ``MEDIA_URL``).
+
+    * If ``DEBUG`` is set to ``True`` (in your settings module), then your 404
+      view will never be used, and the traceback will be displayed instead.
+
+The 500 (server error) view
+----------------------------
+
+Similarly, Django executes special-case behavior in the case of runtime errors
+in view code. If a view results in an exception, Django will, by default, call
+the view ``django.views.defaults.server_error``, which loads and renders the
+template ``500.html``.
+
+This means you need to define a ``500.html`` template in your root template
+directory. This template will be used for all server errors. The default 500
+view passes no variables to this template and is rendered with an empty
+``Context`` to lessen the chance of additional errors.
+
+This ``server_error`` view should suffice for 99% of Web applications, but if
+you want to override the view, you can specify ``handler500`` in your
+URLconf, like so::
+
+    handler500 = 'mysite.views.my_custom_error_view'
+
+Behind the scenes, Django determines the error view by looking for ``handler500``.
+By default, URLconfs contain the following line::
+
+    from django.conf.urls.defaults import *
+
+That takes care of setting ``handler500`` in the current module. As you can see
+in ``django/conf/urls/defaults.py``, ``handler500`` is set to
+``'django.views.defaults.server_error'`` by default.
diff --git a/docs/i18n.txt b/docs/topics/i18n.txt
similarity index 94%
rename from docs/i18n.txt
rename to docs/topics/i18n.txt
index 62d78fb224..5103cb873c 100644
--- a/docs/i18n.txt
+++ b/docs/topics/i18n.txt
@@ -1,3 +1,5 @@
+.. _topics-i18n:
+
 ====================
 Internationalization
 ====================
@@ -33,15 +35,13 @@ If you don't need internationalization in your app
 Django's internationalization hooks are on by default, and that means there's a
 bit of i18n-related overhead in certain places of the framework. If you don't
 use internationalization, you should take the two seconds to set
-``USE_I18N = False`` in your settings file. If ``USE_I18N`` is set to
-``False``, then Django will make some optimizations so as not to load the
-internationalization machinery. See the `documentation for USE_I18N`_.
+:setting:`USE_I18N = False <USE_I18N>` in your settings file. If
+:setting:`USE_I18N` is set to ``False``, then Django will make some
+optimizations so as not to load the internationalization machinery.
 
 You'll probably also want to remove ``'django.core.context_processors.i18n'``
 from your ``TEMPLATE_CONTEXT_PROCESSORS`` setting.
 
-.. _documentation for USE_I18N: ../settings/#use-i18n
-
 If you do need internationalization: three steps
 ================================================
 
@@ -154,6 +154,8 @@ language because they are exchanged over systems or users -- such as strings in
 a database -- but should be translated at the last possible point in time, such
 as when the string is presented to the user.
 
+.. _lazy-translations:
+
 Lazy translation
 ~~~~~~~~~~~~~~~~
 
@@ -180,10 +182,10 @@ If you don't like the verbose name ``ugettext_lazy``, you can just alias it as
     class MyThing(models.Model):
         name = models.CharField(help_text=_('This is the help text'))
 
-Always use lazy translations in `Django models`_. It's a good idea to add
-translations for the field names and table names, too. This means writing
-explicit ``verbose_name`` and ``verbose_name_plural`` options in the ``Meta``
-class, though::
+Always use lazy translations in :ref:`Django models <topics-db-models>`. It's a
+good idea to add translations for the field names and table names, too. This
+means writing explicit ``verbose_name`` and ``verbose_name_plural`` options in
+the ``Meta`` class, though::
 
     from django.utils.translation import ugettext_lazy as _
 
@@ -193,8 +195,6 @@ class, though::
             verbose_name = _('my thing')
             verbose_name_plural = _('mythings')
 
-.. _Django models: ../model-api/
-
 Pluralization
 ~~~~~~~~~~~~~
 
@@ -215,9 +215,9 @@ translation languages as the ``count`` variable).
 In template code
 ----------------
 
-Translations in `Django templates`_ uses two template tags and a slightly
-different syntax than in Python code. To give your template access to these
-tags, put ``{% load i18n %}`` toward the top of your template.
+Translations in :ref:`Django templates <topics-templates>` uses two template
+tags and a slightly different syntax than in Python code. To give your template
+access to these tags, put ``{% load i18n %}`` toward the top of your template.
 
 The ``{% trans %}`` template tag translates a constant string or a variable
 content::
@@ -268,11 +268,12 @@ Each ``RequestContext`` has access to three translation-specific variables:
     * ``LANGUAGES`` is a list of tuples in which the first element is the
       language code and the second is the language name (translated into the
       currently active locale).
+
     * ``LANGUAGE_CODE`` is the current user's preferred language, as a string.
       Example: ``en-us``. (See "How language preference is discovered", below.)
     * ``LANGUAGE_BIDI`` is the current locale's direction. If True, it's a
-      right-to-left language, e.g: Hebrew, Arabic. If False it's a
-      left-to-right language, e.g: English, French, German etc.
+      right-to-left language, e.g.: Hebrew, Arabic. If False it's a
+      left-to-right language, e.g.: English, French, German etc.
 
 
 If you don't use the ``RequestContext`` extension, you can get those values with
@@ -345,7 +346,7 @@ object. You don't want to convert it to a string immediately, because you might
 be using this function outside of a view (and hence the current thread's locale
 setting will not be correct).
 
-For cases like this, use the  ``django.utils.functional.allow_lazy()``
+For cases like this, use the ``django.utils.functional.allow_lazy()``
 decorator. It modifies the function so that *if* it's called with a lazy
 translation as the first argument, the function evaluation is delayed until it
 needs to be converted to a string.
@@ -368,6 +369,8 @@ Using this decorator means you can write your function and assume that the
 input is a proper string, then add support for lazy translation objects at the
 end.
 
+.. _how-to-create-language-files:
+
 2. How to create language files
 ===============================
 
@@ -394,7 +397,7 @@ available translation strings and how they should be represented in the given
 language. Message files have a ``.po`` file extension.
 
 Django comes with a tool, ``django-admin.py makemessages``, that automates the
-creation and upkeep of these files. 
+creation and upkeep of these files.
 
 .. admonition:: A note to Django veterans
 
@@ -451,7 +454,7 @@ When `creating JavaScript translation catalogs`_ you need to use the special
 
 .. admonition:: Working on Windows?
 
-   If you're using Windows and need to install the GNU gettext utilites so
+   If you're using Windows and need to install the GNU gettext utilities so
    ``django-admin makemessages`` works see `gettext on Windows`_ for more
    information.
 
@@ -513,6 +516,7 @@ Do this with the ``django-admin.py compilemessages`` utility.
 
 This tool runs over all available ``.po`` files and creates ``.mo`` files,
 which are binary files optimized for use by ``gettext``. In the same directory
+
 from which you ran ``django-admin.py makemessages``, run
 ``django-admin.py compilemessages`` like this::
 
@@ -529,14 +533,12 @@ That's it. Your translations are ready for use.
 .. admonition:: A note to translators
 
     If you've created a translation in a language Django doesn't yet support,
-    please let us know! See `Submitting and maintaining translations`_ for
-    the steps to take.
-
-    .. _Submitting and maintaining translations: ../contributing/
+    please let us know! See :ref:`contributing-translations` for the steps to
+    take.
 
 .. admonition:: Working on Windows?
 
-   If you're using Windows and need to install the GNU gettext utilites so
+   If you're using Windows and need to install the GNU gettext utilities so
    ``django-admin compilemessages`` works see `gettext on Windows`_ for more
    information.
 
@@ -550,9 +552,9 @@ for your app.
 Behind the scenes, Django has a very flexible model of deciding which language
 should be used -- installation-wide, for a particular user, or both.
 
-To set an installation-wide language preference, set ``LANGUAGE_CODE`` in your
-`settings file`_. Django uses this language as the default translation -- the
-final attempt if no other translator finds a translation.
+To set an installation-wide language preference, set :setting:`LANGUAGE_CODE`.
+Django uses this language as the default translation -- the final attempt if no
+other translator finds a translation.
 
 If all you want to do is run Django with your native language, and a language
 file is available for your language, all you need to do is set
@@ -579,13 +581,14 @@ For example, your ``MIDDLEWARE_CLASSES`` might look like this::
        'django.middleware.common.CommonMiddleware',
     )
 
-(For more on middleware, see the `middleware documentation`_.)
+(For more on middleware, see the :ref:`middleware documentation
+<topics-http-middleware>`.)
 
 ``LocaleMiddleware`` tries to determine the user's language preference by
 following this algorithm:
 
-    * First, it looks for a ``django_language`` key in the the current user's
-      `session`_.
+    * First, it looks for a ``django_language`` key in the current user's
+      session.
     * Failing that, it looks for a cookie that is named according to your ``LANGUAGE_COOKIE_NAME`` setting. (The default name is ``django_language``, and this setting is new in the Django development version. In Django version 0.96 and before, the cookie's name is hard-coded to ``django_language``.)
     * Failing that, it looks at the ``Accept-Language`` HTTP header. This
       header is sent by your browser and tells the server which language(s) you
@@ -602,7 +605,7 @@ Notes:
       Django uses the base language. For example, if a user specifies ``de-at``
       (Austrian German) but Django only has ``de`` available, Django uses
       ``de``.
-    * Only languages listed in the `LANGUAGES setting`_ can be selected. If
+    * Only languages listed in the :setting:`LANGUAGES` setting can be selected. If
       you want to restrict the language selection to a subset of provided
       languages (because your application doesn't provide all those languages),
       set ``LANGUAGES`` to a list of languages. For example::
@@ -661,8 +664,9 @@ Notes:
       is identical to the format strings used by the ``now`` template tag.
 
 Once ``LocaleMiddleware`` determines the user's preference, it makes this
-preference available as ``request.LANGUAGE_CODE`` for each `request object`_.
-Feel free to read this value in your view code. Here's a simple example::
+preference available as ``request.LANGUAGE_CODE`` for each
+:class:`~django.http.HttpRequest`. Feel free to read this value in your view
+code. Here's a simple example::
 
     def hello_world(request, count):
         if request.LANGUAGE_CODE == 'de-at':
@@ -679,6 +683,8 @@ in ``request.LANGUAGE_CODE``.
 .. _session: ../sessions/
 .. _request object: ../request_response/#httprequest-objects
 
+.. _translations-in-your-own-projects:
+
 Using translations in your own projects
 =======================================
 
@@ -698,14 +704,12 @@ message file. The choice is yours.
 
 .. note::
 
-    If you're using manually configured settings, as described in the
-    `settings documentation`_, the ``locale`` directory in the project
-    directory will not be examined, since Django loses the ability to work out
-    the location of the project directory. (Django normally uses the location
-    of the settings file to determine this, and a settings file doesn't exist
-    if you're manually configuring your settings.)
-
-.. _settings documentation: ../settings/#using-settings-without-setting-django-settings-module
+    If you're using manually configured settings, as described
+    :ref:`settings-without-django-settings-module`, the ``locale`` directory in
+    the project directory will not be examined, since Django loses the ability
+    to work out the location of the project directory. (Django normally uses the
+    location of the settings file to determine this, and a settings file doesn't
+    exist if you're manually configuring your settings.)
 
 All message file repositories are structured the same way. They are:
 
@@ -740,6 +744,7 @@ project message file that are already in application message files.
 
 The easiest way out is to store applications that are not part of the project
 (and so carry their own translations) outside the project tree. That way,
+
 ``django-admin.py makemessages`` on the project level will only translate
 strings that are connected to your explicit project and not strings that are
 distributed independently.
@@ -897,6 +902,7 @@ Creating JavaScript translation catalogs
 ----------------------------------------
 
 You create and update the translation catalogs the same way as the other
+
 Django translation catalogs -- with the django-admin.py makemessages tool. The
 only difference is you need to provide a ``-d djangojs`` parameter, like this::
 
@@ -915,7 +921,7 @@ does translation:
     * The string domain is ``django`` or ``djangojs``. This string domain is
       used to differentiate between different programs that store their data
       in a common message-file library (usually ``/usr/share/locale/``). The
-      ``django`` domain is used for Python and template translation strings
+      ``django`` domain is used for python and template translation strings
       and is loaded into the global translation catalogs. The ``djangojs``
       domain is only used for JavaScript translation catalogs to make sure
       that those are as small as possible.
diff --git a/docs/topics/index.txt b/docs/topics/index.txt
new file mode 100644
index 0000000000..702c02f676
--- /dev/null
+++ b/docs/topics/index.txt
@@ -0,0 +1,25 @@
+.. _topics-index:
+
+Using Django
+============
+
+Introductions to all the key parts of Django you'll need to know:
+
+.. toctree::
+   :maxdepth: 1
+   
+   install
+   db/index
+   http/index
+   forms/index
+   forms/modelforms
+   templates
+   files
+   testing
+   auth
+   cache
+   email
+   i18n
+   pagination
+   serialization
+   settings
\ No newline at end of file
diff --git a/docs/install.txt b/docs/topics/install.txt
similarity index 88%
rename from docs/install.txt
rename to docs/topics/install.txt
index cd21bd7ec1..07cb256573 100644
--- a/docs/install.txt
+++ b/docs/topics/install.txt
@@ -1,3 +1,5 @@
+.. _topics-install:
+
 =====================
 How to install Django
 =====================
@@ -18,7 +20,7 @@ Install Apache and mod_python
 =============================
 
 If you just want to experiment with Django, skip ahead to the next
-section; Django includes a lightweight Web server you can use for
+section; Django includes a lightweight web server you can use for
 testing, so you won't need to set up Apache until you're ready to
 deploy Django in production.
 
@@ -29,8 +31,8 @@ the life of an Apache process, which leads to significant performance gains
 over other server arrangements. Make sure you have Apache installed, with the
 mod_python module activated. Django requires Apache 2.x and mod_python 3.x.
 
-See `How to use Django with mod_python`_ for information on how to configure
-mod_python once you have it installed.
+See :ref:`How to use Django with mod_python <howto-deployment-modpython>` for
+information on how to configure mod_python once you have it installed.
 
 If you can't use mod_python for some reason, fear not: Django follows the WSGI_
 spec, which allows it to run on a variety of server platforms. See the
@@ -40,9 +42,10 @@ each platform.
 .. _Apache: http://httpd.apache.org/
 .. _mod_python: http://www.modpython.org/
 .. _WSGI: http://www.python.org/peps/pep-0333.html
-.. _How to use Django with mod_python: ../modpython/
 .. _server-arrangements wiki page: http://code.djangoproject.com/wiki/ServerArrangements
 
+.. _database-installation:
+
 Get your database running
 =========================
 
@@ -60,16 +63,18 @@ installed.
 
   If you're on Windows, check out the unofficial `compiled Windows version`_.
 
-* If you're using MySQL, you'll need MySQLdb_, version 1.2.1p2 or higher.
-  You will also want to read the database-specific notes for the `MySQL backend`_.
+* If you're using MySQL, you'll need MySQLdb_, version 1.2.1p2 or higher. You
+  will also want to read the database-specific notes for the :ref:`MySQL
+  backend <ref-databases>`.
 
 * If you're using SQLite and either Python 2.3 or Python 2.4, you'll need
   pysqlite_. Use version 2.0.3 or higher. Python 2.5 ships with an SQLite
   wrapper in the standard library, so you don't need to install anything extra
   in that case.
 
-* If you're using Oracle, you'll need cx_Oracle_, version 4.3.1 or higher.
-  You will also want to read the database-specific notes for the `Oracle backend`_.
+* If you're using Oracle, you'll need cx_Oracle_, version 4.3.1 or higher. You
+  will also want to read the database-specific notes for the :ref:`Oracle
+  backend <oracle-notes>`.
 
 If you plan to use Django's ``manage.py syncdb`` command to
 automatically create database tables for your models, you'll need to
@@ -80,7 +85,7 @@ can simply grant Django ``SELECT``, ``INSERT``, ``UPDATE`` and
 ``ALTER TABLE`` privileges during ``syncdb`` but won't issue
 ``ALTER TABLE`` statements on a table once ``syncdb`` has created it.
 
-If you're using Django's `testing framework`_ to test database queries,
+If you're using Django's :ref:`testing framework<topics-testing>` to test database queries,
 Django will need permission to create a test database.
 
 .. _PostgreSQL: http://www.postgresql.org/
@@ -91,11 +96,10 @@ Django will need permission to create a test database.
 .. _MySQLdb: http://sourceforge.net/projects/mysql-python
 .. _SQLite: http://www.sqlite.org/
 .. _pysqlite: http://initd.org/tracker/pysqlite
-.. _MySQL backend: ../databases/
 .. _cx_Oracle: http://cx-oracle.sourceforge.net/
 .. _Oracle: http://www.oracle.com/
-.. _Oracle backend: ../databases/#oracle-notes
-.. _testing framework: ../testing/
+
+.. _removing-old-versions-of-django:
 
 Remove any old versions of Django
 =================================
@@ -116,7 +120,9 @@ This file should also be located in your ``site-packages`` directory.
 
     The location of the ``site-packages`` directory depends on the operating
     system, and the location in which Python was installed. To find out your
-    system's ``site-packages`` location, execute the following::
+    system's ``site-packages`` location, execute the following:
+    
+    .. code-block:: bash
 
         python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
 
@@ -127,7 +133,7 @@ Install the Django code
 =======================
 
 Installation instructions are slightly different depending on whether you're
-installing a distribution-specific package, downloading the the latest official
+installing a distribution-specific package, downloading the latest official
 release, or fetching the latest development version.
 
 It's easy, no matter which way you choose.
@@ -135,10 +141,12 @@ It's easy, no matter which way you choose.
 Installing a distribution-specific package
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Check the `distribution specific notes`_ to see if your
+Check the :ref:`distribution specific notes <misc-distributions>` to see if your
 platform/distribution provides official Django packages/installers.
-Distribution-provided packages will typically allow for automatic
-installation of dependencies and easy upgrade paths.
+Distribution-provided packages will typically allow for automatic installation
+of dependencies and easy upgrade paths.
+
+.. _installing-official-release:
 
 Installing an official release
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -160,10 +168,11 @@ Installing an official release
 These commands will install Django in your Python installation's
 ``site-packages`` directory.
 
-.. _distribution specific notes: ../distributions/
 .. _bsdtar: http://gnuwin32.sourceforge.net/packages/bsdtar.htm
 .. _7-zip: http://www.7-zip.org/
 
+.. _installing-development-version:
+
 Installing the development version
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -188,13 +197,17 @@ latest bug fixes and improvements, follow these instructions:
    commands from a shell. (Enter ``svn help`` at a shell prompt to test
    this.)
 
-2. Check out Django's main development branch (the 'trunk') like so::
+2. Check out Django's main development branch (the 'trunk') like so:
+
+   .. code-block:: bash
 
        svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
 
 3. Next, make sure that the Python interpreter can load Django's code. There
    are various ways of accomplishing this.  One of the most convenient, on
-   Linux, Mac OSX or other Unix-like systems, is to use a symbolic link::
+   Linux, Mac OSX or other Unix-like systems, is to use a symbolic link:
+   
+   .. code-block:: bash
 
        ln -s `pwd`/django-trunk/django SITE-PACKAGES-DIR/django
 
@@ -216,13 +229,14 @@ latest bug fixes and improvements, follow these instructions:
       Apache configuration file.
 
       More information about deployment is available, of course, in our
-      `How to use Django with mod_python`_ documentation.
-
-      .. _How to use Django with mod_python: ../modpython/
+      :ref:`How to use Django with mod_python <howto-deployment-modpython>`
+      documentation.
 
 4. On Unix-like systems, create a symbolic link to the file
    ``django-trunk/django/bin/django-admin.py`` in a directory on your system
-   path, such as ``/usr/local/bin``. For example::
+   path, such as ``/usr/local/bin``. For example:
+   
+   .. code-block:: bash
 
        ln -s `pwd`/django-trunk/django/bin/django-admin.py /usr/local/bin
 
diff --git a/docs/pagination.txt b/docs/topics/pagination.txt
similarity index 62%
rename from docs/pagination.txt
rename to docs/topics/pagination.txt
index c36f56244f..8911e67bbb 100644
--- a/docs/pagination.txt
+++ b/docs/topics/pagination.txt
@@ -1,17 +1,22 @@
+.. _topics-pagination:
+
 ==========
 Pagination
 ==========
 
+.. module:: django.core.paginator
+   :synopsis: Classes to help you easily manage paginated data.
+
 **New in Django development version**
 
 Django provides a few classes that help you manage paginated data -- that is,
 data that's split across several pages, with "Previous/Next" links. These
-classes live in the module ``django/core/paginator.py``.
+classes live in the module :file:`django/core/paginator.py`.
 
 Example
 =======
 
-Give ``Paginator`` a list of objects, plus the number of items you'd like to
+Give :class:`Paginator` a list of objects, plus the number of items you'd like to
 have on each page, and it gives you methods for accessing the items for each
 page::
 
@@ -59,9 +64,21 @@ page::
     ...
     InvalidPage
 
+    Note that you can give ``Paginator`` a list/tuple, a Django ``QuerySet``, or
+    any other object with a ``count()`` or ``__len__()`` method. When
+    determining the number of objects contained in the passed object,
+    ``Paginator`` will first try calling ``count()``, then fallback to using
+    ``len()`` if the passed object has no ``count()`` method. This allows
+    objects such as Django's ``QuerySet`` to use a more efficient ``count()``
+    method when available.
+
 ``Paginator`` objects
 =====================
 
+The :class:`Paginator` class has this constructor:
+
+.. class:: Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True)
+
 Required arguments
 ------------------
 
@@ -93,30 +110,33 @@ Optional arguments
 Methods
 -------
 
-``page(number)``
-    Returns a ``Page`` object with the given 1-based index. Raises
-    ``InvalidPage`` if the given page number doesn't exist.
+.. method:: Paginator.page(number)
+    
+    Returns a :class:`Page` object with the given 1-based index. Raises
+    :exc:`InvalidPage` if the given page number doesn't exist.
 
 Attributes
 ----------
 
-In addition to the arguments above, which get stored as attributes, a
-``Paginator`` object also has the following attributes:
-
-``count``
+.. attribute:: Paginator.count
+    
     The total number of objects, across all pages.
+    
+    .. note:: 
 
-    **Note**: When determining the number of objects contained in
-    ``object_list``, ``Paginator`` will first try calling
-    ``object_list.count()``. If ``object_list`` has no ``count()`` method, then
-    ``Paginator`` will fallback to using ``object_list.__len__()``. This allows
-    objects, such as Django's ``QuerySet``, to use a more efficient ``count()``
-    method when available.
-
-``num_pages``
+        When determining the number of objects contained in ``object_list``,
+        ``Paginator`` will first try calling ``object_list.count()``. If
+        ``object_list`` has no ``count()`` method, then ``Paginator`` will
+        fallback to using ``object_list.__len__()``. This allows objects, such
+        as Django's ``QuerySet``, to use a more efficient ``count()`` method
+        when available.
+        
+.. attribute:: Paginator.num_pages
+    
     The total number of pages.
-
-``page_range``
+    
+.. attribute:: Paginator.page_range
+    
     A 1-based range of page numbers, e.g., ``[1, 2, 3, 4]``.
 
 ``InvalidPage`` exceptions
@@ -137,49 +157,67 @@ either of the following exceptions:
 Both of the exceptions are subclasses of ``InvalidPage``, so you can handle
 them both with a simple ``except InvalidPage``.
 
+
 ``Page`` objects
 ================
 
+.. class:: Page(object_list, number, paginator):
+
+You usually won't construct :class:`Pages <Page>` by hand -- you'll get them
+using :meth:`Paginator.page`.
+
+
 Methods
 -------
 
-``has_next()``
+.. method:: Page.has_next()
+    
     Returns ``True`` if there's a next page.
-
-``has_previous()``
+    
+.. method:: Page.has_previous()
+    
     Returns ``True`` if there's a previous page.
-
-``has_other_pages()``
+    
+.. method:: Page.has_other_pages()
+    
     Returns ``True`` if there's a next *or* previous page.
-
-``next_page_number()``
+    
+.. method:: Page.next_page_number()
+    
     Returns the next page number. Note that this is "dumb" and will return the
     next page number regardless of whether a subsequent page exists.
-
-``previous_page_number()``
+    
+.. method:: Page.previous_page_number()
+    
     Returns the previous page number. Note that this is "dumb" and will return
     the previous page number regardless of whether a previous page exists.
-
-``start_index()``
+    
+.. method:: Page.start_index()
+    
     Returns the 1-based index of the first object on the page, relative to all
     of the objects in the paginator's list. For example, when paginating a list
-    of 5 objects with 2 objects per page, the second page's ``start_index()``
+    of 5 objects with 2 objects per page, the second page's :meth:`~Page.start_index`
     would return ``3``.
-
-``end_index()``
-    Returns the 1-based index of the last object on the page, relative to all
-    of the objects in the paginator's list. For example, when paginating a list
-    of 5 objects with 2 objects per page, the second page's ``end_index()``
+    
+.. method:: Page.end_index()
+    
+    Returns the 1-based index of the last object on the page, relative to all of
+    the objects in the paginator's list. For example, when paginating a list of
+    5 objects with 2 objects per page, the second page's :meth:`~Page.end_index`
     would return ``4``.
 
 Attributes
 ----------
 
-``object_list``
+.. attribute:: Page.object_list
+    
     The list of objects on this page.
-
-``number``
+    
+.. attribute:: Page.number
+    
     The 1-based page number for this page.
+    
+.. attribute:: Page.paginator
+    
+    The associated :class:`Paginator` object.
 
-``paginator``
-    The associated ``Paginator`` object.
diff --git a/docs/serialization.txt b/docs/topics/serialization.txt
similarity index 91%
rename from docs/serialization.txt
rename to docs/topics/serialization.txt
index 971103747c..db9515960e 100644
--- a/docs/serialization.txt
+++ b/docs/topics/serialization.txt
@@ -1,3 +1,5 @@
+.. _topics-serialization:
+
 ==========================
 Serializing Django objects
 ==========================
@@ -15,12 +17,10 @@ At the highest level, serializing data is a very simple operation::
     from django.core import serializers
     data = serializers.serialize("xml", SomeModel.objects.all())
 
-The arguments to the ``serialize`` function are the format to serialize the
-data to (see `Serialization formats`_) and a QuerySet_ to serialize.
-(Actually, the second argument can be any iterator that yields Django objects,
-but it'll almost always be a QuerySet).
-
-.. _QuerySet: ../db-api/#retrieving-objects
+The arguments to the ``serialize`` function are the format to serialize the data
+to (see `Serialization formats`_) and a :class:`~django.db.models.QuerySet` to
+serialize. (Actually, the second argument can be any iterator that yields Django
+objects, but it'll almost always be a QuerySet).
 
 You can also use a serializer object directly::
 
@@ -30,13 +30,11 @@ You can also use a serializer object directly::
     data = xml_serializer.getvalue()
 
 This is useful if you want to serialize data directly to a file-like object
-(which includes a HTTPResponse_)::
+(which includes an :class:`~django.http.HttpResponse` ::
 
     out = open("file.xml", "w")
     xml_serializer.serialize(SomeModel.objects.all(), stream=out)
 
-.. _HTTPResponse: ../request_response/#httpresponse-objects
-
 Subset of fields
 ~~~~~~~~~~~~~~~~
 
@@ -124,6 +122,8 @@ trust your data source you could just save the object and move on.
 
 The Django object itself can be inspected as ``deserialized_object.object``.
 
+.. _serialization-formats:
+
 Serialization formats
 ---------------------
 
@@ -164,10 +164,11 @@ For example::
     json_serializer = serializers.get_serializer("json")()
     json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
 
-The Django source code includes the simplejson_ module. Be aware that if
-you're serializing using that module directly, not all Django output can be
-passed unmodified to simplejson. In particular, `lazy translation objects`_
-need a `special encoder`_ written for them. Something like this will work::
+The Django source code includes the simplejson_ module. Be aware that if you're
+serializing using that module directly, not all Django output can be passed
+unmodified to simplejson. In particular, :ref:`lazy translation objects
+<lazy-translations>` need a `special encoder`_ written for them. Something like
+this will work::
 
     from django.utils.functional import Promise
     from django.utils.encoding import force_unicode
@@ -178,5 +179,4 @@ need a `special encoder`_ written for them. Something like this will work::
                 return force_unicode(obj)
             return obj
 
-.. _lazy translation objects: ../i18n/#lazy-translation
 .. _special encoder: http://svn.red-bean.com/bob/simplejson/tags/simplejson-1.7/docs/index.html
diff --git a/docs/topics/settings.txt b/docs/topics/settings.txt
new file mode 100644
index 0000000000..d9c8f0ab62
--- /dev/null
+++ b/docs/topics/settings.txt
@@ -0,0 +1,253 @@
+.. _topics-settings:
+
+===============
+Django settings
+===============
+
+A Django settings file contains all the configuration of your Django
+installation. This document explains how settings work and which settings are
+available.
+
+The basics
+==========
+
+A settings file is just a Python module with module-level variables.
+
+Here are a couple of example settings::
+
+    DEBUG = False
+    DEFAULT_FROM_EMAIL = 'webmaster@example.com'
+    TEMPLATE_DIRS = ('/home/templates/mike', '/home/templates/john')
+
+Because a settings file is a Python module, the following apply:
+
+    * It doesn't allow for Python syntax errors.
+    * It can assign settings dynamically using normal Python syntax.
+      For example::
+
+          MY_SETTING = [str(i) for i in range(30)]
+
+    * It can import values from other settings files.
+
+.. _django-settings-module:
+
+Designating the settings
+========================
+
+When you use Django, you have to tell it which settings you're using. Do this
+by using an environment variable, ``DJANGO_SETTINGS_MODULE``.
+
+The value of ``DJANGO_SETTINGS_MODULE`` should be in Python path syntax, e.g.
+``mysite.settings``. Note that the settings module should be on the
+Python `import search path`_.
+
+.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html
+
+The django-admin.py utility
+---------------------------
+
+When using :ref:`django-admin.py <ref-django-admin>`, you can either set the
+environment variable once, or explicitly pass in the settings module each time
+you run the utility.
+
+Example (Unix Bash shell)::
+
+    export DJANGO_SETTINGS_MODULE=mysite.settings
+    django-admin.py runserver
+
+Example (Windows shell)::
+
+    set DJANGO_SETTINGS_MODULE=mysite.settings
+    django-admin.py runserver
+
+Use the ``--settings`` command-line argument to specify the settings manually::
+
+    django-admin.py runserver --settings=mysite.settings
+
+.. _django-admin.py: ../django-admin/
+
+On the server (mod_python)
+--------------------------
+
+In your live server environment, you'll need to tell Apache/mod_python which
+settings file to use. Do that with ``SetEnv``::
+
+    <Location "/mysite/">
+        SetHandler python-program
+        PythonHandler django.core.handlers.modpython
+        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
+    </Location>
+
+Read the :ref:`Django mod_python documentation <howto-deployment-modpython>` for
+more information.
+
+Default settings
+================
+
+A Django settings file doesn't have to define any settings if it doesn't need
+to. Each setting has a sensible default value. These defaults live in the file
+``django/conf/global_settings.py``.
+
+Here's the algorithm Django uses in compiling settings:
+
+    * Load settings from ``global_settings.py``.
+    * Load settings from the specified settings file, overriding the global
+      settings as necessary.
+
+Note that a settings file should *not* import from ``global_settings``, because
+that's redundant.
+
+Seeing which settings you've changed
+------------------------------------
+
+There's an easy way to view which of your settings deviate from the default
+settings. The command ``python manage.py diffsettings`` displays differences
+between the current settings file and Django's default settings.
+
+For more, see the :djadmin:`diffsettings` documentation.
+
+Using settings in Python code
+=============================
+
+In your Django apps, use settings by importing the object
+``django.conf.settings``. Example::
+
+    from django.conf import settings
+
+    if settings.DEBUG:
+        # Do something
+
+Note that ``django.conf.settings`` isn't a module -- it's an object. So
+importing individual settings is not possible::
+
+    from django.conf.settings import DEBUG  # This won't work.
+
+Also note that your code should *not* import from either ``global_settings`` or
+your own settings file. ``django.conf.settings`` abstracts the concepts of
+default settings and site-specific settings; it presents a single interface.
+It also decouples the code that uses settings from the location of your
+settings.
+
+Altering settings at runtime
+============================
+
+You shouldn't alter settings in your applications at runtime. For example,
+don't do this in a view::
+
+    from django.conf import settings
+
+    settings.DEBUG = True   # Don't do this!
+
+The only place you should assign to settings is in a settings file.
+
+Security
+========
+
+Because a settings file contains sensitive information, such as the database
+password, you should make every attempt to limit access to it. For example,
+change its file permissions so that only you and your Web server's user can
+read it. This is especially important in a shared-hosting environment.
+
+Available settings
+==================
+
+For a full list of available settings, see the :ref:`settings reference <ref-settings>`.
+
+Creating your own settings
+==========================
+
+There's nothing stopping you from creating your own settings, for your own
+Django apps. Just follow these conventions:
+
+    * Setting names are in all uppercase.
+    * For settings that are sequences, use tuples instead of lists. This is
+      purely for performance.
+    * Don't reinvent an already-existing setting.
+
+.. _settings-without-django-settings-module:
+
+Using settings without setting DJANGO_SETTINGS_MODULE
+=====================================================
+
+In some cases, you might want to bypass the ``DJANGO_SETTINGS_MODULE``
+environment variable. For example, if you're using the template system by
+itself, you likely don't want to have to set up an environment variable
+pointing to a settings module.
+
+In these cases, you can configure Django's settings manually. Do this by
+calling ``django.conf.settings.configure()``.
+
+Example::
+
+    from django.conf import settings
+
+    settings.configure(DEBUG=True, TEMPLATE_DEBUG=True,
+        TEMPLATE_DIRS=('/home/web-apps/myapp', '/home/web-apps/base'))
+
+Pass ``configure()`` as many keyword arguments as you'd like, with each keyword
+argument representing a setting and its value. Each argument name should be all
+uppercase, with the same name as the settings described above. If a particular
+setting is not passed to ``configure()`` and is needed at some later point,
+Django will use the default setting value.
+
+Configuring Django in this fashion is mostly necessary -- and, indeed,
+recommended -- when you're using a piece of the framework inside a larger
+application.
+
+Consequently, when configured via ``settings.configure()``, Django will not
+make any modifications to the process environment variables. (See the
+explanation of ``TIME_ZONE``, above, for why this would normally occur.) It's
+assumed that you're already in full control of your environment in these cases.
+
+Custom default settings
+-----------------------
+
+If you'd like default values to come from somewhere other than
+``django.conf.global_settings``, you can pass in a module or class that
+provides the default settings as the ``default_settings`` argument (or as the
+first positional argument) in the call to ``configure()``.
+
+In this example, default settings are taken from ``myapp_defaults``, and the
+``DEBUG`` setting is set to ``True``, regardless of its value in
+``myapp_defaults``::
+
+    from django.conf import settings
+    from myapp import myapp_defaults
+
+    settings.configure(default_settings=myapp_defaults, DEBUG=True)
+
+The following example, which uses ``myapp_defaults`` as a positional argument,
+is equivalent::
+
+    settings.configure(myapp_defaults, DEBUG = True)
+
+Normally, you will not need to override the defaults in this fashion. The
+Django defaults are sufficiently tame that you can safely use them. Be aware
+that if you do pass in a new default module, it entirely *replaces* the Django
+defaults, so you must specify a value for every possible setting that might be
+used in that code you are importing. Check in
+``django.conf.settings.global_settings`` for the full list.
+
+Either configure() or DJANGO_SETTINGS_MODULE is required
+--------------------------------------------------------
+
+If you're not setting the ``DJANGO_SETTINGS_MODULE`` environment variable, you
+*must* call ``configure()`` at some point before using any code that reads
+settings.
+
+If you don't set ``DJANGO_SETTINGS_MODULE`` and don't call ``configure()``,
+Django will raise an ``ImportError`` exception the first time a setting
+is accessed.
+
+If you set ``DJANGO_SETTINGS_MODULE``, access settings values somehow, *then*
+call ``configure()``, Django will raise a ``RuntimeError`` indicating
+that settings have already been configured.
+
+Also, it's an error to call ``configure()`` more than once, or to call
+``configure()`` after any setting has been accessed.
+
+It boils down to this: Use exactly one of either ``configure()`` or
+``DJANGO_SETTINGS_MODULE``. Not both, and not neither.
+
+.. _@login_required: ../authentication/#the-login-required-decorator
+
diff --git a/docs/topics/templates.txt b/docs/topics/templates.txt
new file mode 100644
index 0000000000..09ef0d711a
--- /dev/null
+++ b/docs/topics/templates.txt
@@ -0,0 +1,644 @@
+.. _topics-templates:
+
+============================
+The Django template language
+============================
+
+.. admonition:: About this document
+
+    This document explains the language syntax of the Django template system. If
+    you're looking for a more technical perspective on how it works and how to
+    extend it, see :ref:`ref-templates-api`.
+
+Django's template language is designed to strike a balance between power and
+ease. It's designed to feel comfortable to those used to working with HTML. If
+you have any exposure to other text-based template languages, such as Smarty_
+or CheetahTemplate_, you should feel right at home with Django's templates.
+
+.. admonition:: Philosophy
+
+    If you have a background in programming, or if you're used to languages
+    like PHP which mix programming code directly into HTML, you'll want to
+    bear in mind that the Django template system is not simply Python embedded
+    into HTML. This is by design: the template system is meant to express
+    presentation, not program logic.
+
+    The Django template system provides tags which function similarly to some
+    programming constructs -- an :ttag:`if` tag for boolean tests, a :ttag:`for`
+    tag for looping, etc. -- but these are not simply executed as the
+    corresponding Python code, and the template system will not execute
+    arbitrary Python expressions. Only the tags, filters and syntax listed below
+    are supported by default (although you can add :ref:`your own extensions
+    <howto-custom-template-tags>` to the template language as needed).
+
+.. _`The Django template language: For Python programmers`: ../templates_python/
+.. _Smarty: http://smarty.php.net/
+.. _CheetahTemplate: http://www.cheetahtemplate.org/
+
+Templates
+=========
+
+A template is simply a text file. It can generate any text-based format (HTML,
+XML, CSV, etc.).
+
+A template contains **variables**, which get replaced with values when the
+template is evaluated, and **tags**, which control the logic of the template.
+
+Below is a minimal template that illustrates a few basics. Each element will be
+explained later in this document.::
+
+    {% extends "base_generic.html" %}
+
+    {% block title %}{{ section.title }}{% endblock %}
+
+    {% block content %}
+    <h1>{{ section.title }}</h1>
+
+    {% for story in story_list %}
+    <h2>
+      <a href="{{ story.get_absolute_url }}">
+        {{ story.headline|upper }}
+      </a>
+    </h2>
+    <p>{{ story.tease|truncatewords:"100" }}</p>
+    {% endfor %}
+    {% endblock %}
+
+.. admonition:: Philosophy
+
+    Why use a text-based template instead of an XML-based one (like Zope's
+    TAL)? We wanted Django's template language to be usable for more than
+    just XML/HTML templates. At World Online, we use it for e-mails,
+    JavaScript and CSV. You can use the template language for any text-based
+    format.
+
+    Oh, and one more thing: Making humans edit XML is sadistic!
+
+Variables
+=========
+
+Variables look like this: ``{{ variable }}``. When the template engine
+encounters a variable, it evaluates that variable and replaces it with the
+result.
+
+Use a dot (``.``) to access attributes of a variable.
+
+.. admonition:: Behind the scenes
+
+    Technically, when the template system encounters a dot, it tries the
+    following lookups, in this order:
+
+        * Dictionary lookup
+        * Attribute lookup
+        * Method call
+        * List-index lookup
+
+In the above example, ``{{ section.title }}`` will be replaced with the
+``title`` attribute of the ``section`` object.
+
+If you use a variable that doesn't exist, the template system will insert
+the value of the ``TEMPLATE_STRING_IF_INVALID`` setting, which is set to ``''``
+(the empty string) by default.
+
+See `Using the built-in reference`_, below, for help on finding what variables
+are available in a given template.
+
+Filters
+=======
+
+You can modify variables for display by using **filters**.
+
+Filters look like this: ``{{ name|lower }}``. This displays the value of the
+``{{ name }}`` variable after being filtered through the ``lower`` filter,
+which converts text to lowercase. Use a pipe (``|``) to apply a filter.
+
+Filters can be "chained." The output of one filter is applied to the next.
+``{{ text|escape|linebreaks }}`` is a common idiom for escaping text contents,
+then converting line breaks to ``<p>`` tags.
+
+Some filters take arguments. A filter argument looks like this: ``{{
+bio|truncatewords:30 }}``. This will display the first 30 words of the ``bio``
+variable.
+
+Filter arguments that contain spaces must be quoted; for example, to join a list
+with commas and spaced you'd use ``{{ list|join:", " }}``.
+
+Django provides about thirty built-in template filters. You can read all about
+them in the :ref:`built-in filter reference <ref-templates-builtins-filters>`.
+To give you a taste of what's available, here are some of the more commonly used
+template filters:
+
+    :tfilter:`default`
+        If a variable is false or empty, use given default. Otherwise, use the
+        value of the variable
+
+        For example::
+
+            {{ value|default:"nothing" }}
+
+        If ``value`` isn't provided or is empty, the above will display
+        "``nothing``".
+        
+    :tfilter:`length`
+        Returns the length of the value. This works for both strings and lists;
+        for example::
+
+            {{ value|length }}
+
+        If ``value`` is ``['a', 'b', 'c', 'd']``, the output will be ``4``.
+    
+    :tfilter:`striptags`
+        Strips all [X]HTML tags. For example::
+
+            {{ value|striptags }}
+
+        If ``value`` is ``"<b>Joel</b> <button>is</button> a
+        <span>slug</span>"``, the output will be ``"Joel is a slug"``.
+
+Again, these are just a few examples; see the :ref:`built-in filter reference
+<ref-templates-builtins-filters>` for the complete list.
+
+You can also create your own custom template filters; see
+:ref:`howto-custom-template-tags`.
+
+Tags
+====
+
+Tags look like this: ``{% tag %}``. Tags are more complex than variables: Some
+create text in the output, some control flow by performing loops or logic, and
+some load external information into the template to be used by later variables.
+
+Some tags require beginning and ending tags (i.e. ``{% tag %} ... tag contents
+... {% endtag %}``).
+
+Django ships with about two dozen built-in template tags. You can read all about
+them in the :ref:`built-in tag reference <ref-templates-builtins-tags>`. To give
+you a taste of what's available, here are some of the more commonly used
+tags:
+
+    :ttag:`for`
+        Loop over each item in an array.  For example, to display a list of athletes
+        provided in ``athlete_list``::
+
+            <ul>
+            {% for athlete in athlete_list %}
+                <li>{{ athlete.name }}</li>
+            {% endfor %}
+            </ul>
+        
+    :ttag:`if` and :ttag:`else`
+        Evaluates a variable, and if that variable is "true" the contents of the
+        block are displayed::
+
+            {% if athlete_list %}
+                Number of athletes: {{ athlete_list|length }}
+            {% else %}
+                No athletes.
+            {% endif %}
+
+        In the above, if ``athlete_list`` is not empty, the number of athletes
+        will be displayed by the ``{{ athlete_list|length }}`` variable.
+        
+    :ttag:`ifequal` and :ttag:`ifnotequal`
+        Display some contents if two arguments are or are not equal. For example::
+
+            {% ifequal athlete.name coach.name %}
+                ...
+            {% endifequal %}
+
+        Or::
+
+            {% ifnotequal athlete.name "Joe" %}
+                ...
+            {% endifequal %}
+    
+    :ttag:`block` and :ttag:`extends`
+        Set up `template inheritance`_ (see below), a powerful way
+        of cutting down on "boilerplate" in templates.
+
+Again, the above is only a selection of the whole list; see the :ref:`built-in
+tag reference <ref-templates-builtins-tags>` for the complete list.
+
+You can also create your own custom template tags; see
+:ref:`howto-custom-template-tags`.
+
+Comments
+========
+
+To comment-out part of a line in a template, use the comment syntax: ``{# #}``.
+
+For example, this template would render as ``'hello'``::
+
+    {# greeting #}hello
+
+A comment can contain any template code, invalid or not. For example::
+
+    {# {% if foo %}bar{% else %} #}
+
+This syntax can only be used for single-line comments (no newlines are permitted
+between the ``{#`` and ``#}`` delimiters). If you need to comment out a
+multiline portion of the template, see the :ttag:`comment` tag.
+
+.. _template-inheritance:
+
+Template inheritance
+====================
+
+The most powerful -- and thus the most complex -- part of Django's template
+engine is template inheritance. Template inheritance allows you to build a base
+"skeleton" template that contains all the common elements of your site and
+defines **blocks** that child templates can override.
+
+It's easiest to understand template inheritance by starting with an example::
+
+    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+    <head>
+        <link rel="stylesheet" href="style.css" />
+        <title>{% block title %}My amazing site{% endblock %}</title>
+    </head>
+
+    <body>
+        <div id="sidebar">
+            {% block sidebar %}
+            <ul>
+                <li><a href="/">Home</a></li>
+                <li><a href="/blog/">Blog</a></li>
+            </ul>
+            {% endblock %}
+        </div>
+
+        <div id="content">
+            {% block content %}{% endblock %}
+        </div>
+    </body>
+    </html>
+
+This template, which we'll call ``base.html``, defines a simple HTML skeleton
+document that you might use for a simple two-column page. It's the job of
+"child" templates to fill the empty blocks with content.
+
+In this example, the ``{% block %}`` tag defines three blocks that child
+templates can fill in. All the ``block`` tag does is to tell the template
+engine that a child template may override those portions of the template.
+
+A child template might look like this::
+
+    {% extends "base.html" %}
+
+    {% block title %}My amazing blog{% endblock %}
+
+    {% block content %}
+    {% for entry in blog_entries %}
+        <h2>{{ entry.title }}</h2>
+        <p>{{ entry.body }}</p>
+    {% endfor %}
+    {% endblock %}
+
+The ``{% extends %}`` tag is the key here. It tells the template engine that
+this template "extends" another template. When the template system evaluates
+this template, first it locates the parent -- in this case, "base.html".
+
+At that point, the template engine will notice the three ``{% block %}`` tags
+in ``base.html`` and replace those blocks with the contents of the child
+template. Depending on the value of ``blog_entries``, the output might look
+like::
+
+    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+    <head>
+        <link rel="stylesheet" href="style.css" />
+        <title>My amazing blog</title>
+    </head>
+
+    <body>
+        <div id="sidebar">
+            <ul>
+                <li><a href="/">Home</a></li>
+                <li><a href="/blog/">Blog</a></li>
+            </ul>
+        </div>
+
+        <div id="content">
+            <h2>Entry one</h2>
+            <p>This is my first entry.</p>
+
+            <h2>Entry two</h2>
+            <p>This is my second entry.</p>
+        </div>
+    </body>
+    </html>
+
+Note that since the child template didn't define the ``sidebar`` block, the
+value from the parent template is used instead. Content within a ``{% block %}``
+tag in a parent template is always used as a fallback.
+
+You can use as many levels of inheritance as needed. One common way of using
+inheritance is the following three-level approach:
+
+    * Create a ``base.html`` template that holds the main look-and-feel of your
+      site.
+    * Create a ``base_SECTIONNAME.html`` template for each "section" of your
+      site. For example, ``base_news.html``, ``base_sports.html``. These
+      templates all extend ``base.html`` and include section-specific
+      styles/design.
+    * Create individual templates for each type of page, such as a news
+      article or blog entry. These templates extend the appropriate section
+      template.
+
+This approach maximizes code reuse and makes it easy to add items to shared
+content areas, such as section-wide navigation.
+
+Here are some tips for working with inheritance:
+
+    * If you use ``{% extends %}`` in a template, it must be the first template
+      tag in that template. Template inheritance won't work, otherwise.
+
+    * More ``{% block %}`` tags in your base templates are better. Remember,
+      child templates don't have to define all parent blocks, so you can fill
+      in reasonable defaults in a number of blocks, then only define the ones
+      you need later. It's better to have more hooks than fewer hooks.
+
+    * If you find yourself duplicating content in a number of templates, it
+      probably means you should move that content to a ``{% block %}`` in a
+      parent template.
+
+    * If you need to get the content of the block from the parent template,
+      the ``{{ block.super }}`` variable will do the trick. This is useful
+      if you want to add to the contents of a parent block instead of
+      completely overriding it. Data inserted using ``{{ block.super }}`` will
+      not be automatically escaped (see the `next section`_), since it was
+      already escaped, if necessary, in the parent template.
+
+    * For extra readability, you can optionally give a *name* to your
+      ``{% endblock %}`` tag. For example::
+
+          {% block content %}
+          ...
+          {% endblock content %}
+
+      In larger templates, this technique helps you see which ``{% block %}``
+      tags are being closed.
+
+Finally, note that you can't define multiple ``{% block %}`` tags with the same
+name in the same template. This limitation exists because a block tag works in
+"both" directions. That is, a block tag doesn't just provide a hole to fill --
+it also defines the content that fills the hole in the *parent*. If there were
+two similarly-named ``{% block %}`` tags in a template, that template's parent
+wouldn't know which one of the blocks' content to use.
+
+.. _next section: #automatic-html-escaping
+.. _automatic-html-escaping:
+
+Automatic HTML escaping
+=======================
+
+**New in Django development version**
+
+When generating HTML from templates, there's always a risk that a variable will
+include characters that affect the resulting HTML. For example, consider this
+template fragment::
+
+    Hello, {{ name }}.
+
+At first, this seems like a harmless way to display a user's name, but consider
+what would happen if the user entered his name as this::
+
+    <script>alert('hello')</script>
+
+With this name value, the template would be rendered as::
+
+    Hello, <script>alert('hello')</script>
+
+...which means the browser would pop-up a JavaScript alert box!
+
+Similarly, what if the name contained a ``'<'`` symbol, like this?
+
+    <b>username
+
+That would result in a rendered template like this::
+
+    Hello, <b>username
+
+...which, in turn, would result in the remainder of the Web page being bolded!
+
+Clearly, user-submitted data shouldn't be trusted blindly and inserted directly
+into your Web pages, because a malicious user could use this kind of hole to
+do potentially bad things. This type of security exploit is called a
+`Cross Site Scripting`_ (XSS) attack.
+
+To avoid this problem, you have two options:
+
+    * One, you can make sure to run each untrusted variable through the
+      ``escape`` filter (documented below), which converts potentially harmful
+      HTML characters to unharmful ones. This was the default solution
+      in Django for its first few years, but the problem is that it puts the
+      onus on *you*, the developer / template author, to ensure you're escaping
+      everything. It's easy to forget to escape data.
+
+    * Two, you can take advantage of Django's automatic HTML escaping. The
+      remainder of this section describes how auto-escaping works.
+
+By default in the Django development version, every template automatically
+escapes the output of every variable tag. Specifically, these five characters
+are escaped:
+
+    * ``<`` is converted to ``&lt;``
+    * ``>`` is converted to ``&gt;``
+    * ``'`` (single quote) is converted to ``&#39;``
+    * ``"`` (double quote) is converted to ``&quot;``
+    * ``&`` is converted to ``&amp;``
+
+Again, we stress that this behavior is on by default. If you're using Django's
+template system, you're protected.
+
+.. _Cross Site Scripting: http://en.wikipedia.org/wiki/Cross-site_scripting
+
+How to turn it off
+------------------
+
+If you don't want data to be auto-escaped, on a per-site, per-template level or
+per-variable level, you can turn it off in several ways.
+
+Why would you want to turn it off? Because sometimes, template variables
+contain data that you *intend* to be rendered as raw HTML, in which case you
+don't want their contents to be escaped. For example, you might store a blob of
+HTML in your database and want to embed that directly into your template. Or,
+you might be using Django's template system to produce text that is *not* HTML
+-- like an e-mail message, for instance.
+
+For individual variables
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+To disable auto-escaping for an individual variable, use the ``safe`` filter::
+
+    This will be escaped: {{ data }}
+    This will not be escaped: {{ data|safe }}
+
+Think of *safe* as shorthand for *safe from further escaping* or *can be
+safely interpreted as HTML*. In this example, if ``data`` contains ``'<b>'``,
+the output will be::
+
+    This will be escaped: &lt;b&gt;
+    This will not be escaped: <b>
+
+For template blocks
+~~~~~~~~~~~~~~~~~~~
+
+To control auto-escaping for a template, wrap the template (or just a
+particular section of the template) in the ``autoescape`` tag, like so::
+
+    {% autoescape off %}
+        Hello {{ name }}
+    {% endautoescape %}
+
+The ``autoescape`` tag takes either ``on`` or ``off`` as its argument. At
+times, you might want to force auto-escaping when it would otherwise be
+disabled. Here is an example template::
+
+    Auto-escaping is on by default. Hello {{ name }}
+
+    {% autoescape off %}
+        This will not be auto-escaped: {{ data }}.
+
+        Nor this: {{ other_data }}
+        {% autoescape on %}
+            Auto-escaping applies again: {{ name }}
+        {% endautoescape %}
+    {% endautoescape %}
+
+The auto-escaping tag passes its effect onto templates that extend the
+current one as well as templates included via the ``include`` tag, just like
+all block tags. For example::
+
+    # base.html
+
+    {% autoescape off %}
+    <h1>{% block title %}{% endblock %}</h1>
+    {% block content %}
+    {% endblock %}
+    {% endautoescape %}
+
+
+    # child.html
+
+    {% extends "base.html" %}
+    {% block title %}This & that{% endblock %}
+    {% block content %}{{ greeting }}{% endblock %}
+
+Because auto-escaping is turned off in the base template, it will also be
+turned off in the child template, resulting in the following rendered
+HTML when the ``greeting`` variable contains the string ``<b>Hello!</b>``::
+
+    <h1>This & that</h1>
+    <b>Hello!</b>
+
+Notes
+-----
+
+Generally, template authors don't need to worry about auto-escaping very much.
+Developers on the Python side (people writing views and custom filters) need to
+think about the cases in which data shouldn't be escaped, and mark data
+appropriately, so things Just Work in the template.
+
+If you're creating a template that might be used in situations where you're
+not sure whether auto-escaping is enabled, then add an ``escape`` filter to any
+variable that needs escaping. When auto-escaping is on, there's no danger of
+the ``escape`` filter *double-escaping* data -- the ``escape`` filter does not
+affect auto-escaped variables.
+
+String literals and automatic escaping
+--------------------------------------
+
+As we mentioned earlier, filter arguments can be strings::
+
+    {{ data|default:"This is a string literal." }}
+
+All string literals are inserted **without** any automatic escaping into the
+template -- they act as if they were all passed through the ``safe`` filter.
+The reasoning behind this is that the template author is in control of what
+goes into the string literal, so they can make sure the text is correctly
+escaped when the template is written.
+
+This means you would write ::
+
+    {{ data|default:"3 &lt; 2" }}
+
+...rather than ::
+
+    {{ data|default:"3 < 2" }}  <-- Bad! Don't do this.
+
+This doesn't affect what happens to data coming from the variable itself.
+The variable's contents are still automatically escaped, if necessary, because
+they're beyond the control of the template author.
+
+.. _template-built-in-reference:
+
+Using the built-in reference
+============================
+
+Django's admin interface includes a complete reference of all template tags and
+filters available for a given site. To see it, go to your admin interface and
+click the "Documentation" link in the upper right of the page.
+
+The reference is divided into 4 sections: tags, filters, models, and views.
+
+The **tags** and **filters** sections describe all the built-in tags (in fact,
+the tag and filter references below come directly from those pages) as well as
+any custom tag or filter libraries available.
+
+The **views** page is the most valuable. Each URL in your site has a separate
+entry here, and clicking on a URL will show you:
+
+    * The name of the view function that generates that view.
+    * A short description of what the view does.
+    * The **context**, or a list of variables available in the view's template.
+    * The name of the template or templates that are used for that view.
+
+Each view documentation page also has a bookmarklet that you can use to jump
+from any page to the documentation page for that view.
+
+Because Django-powered sites usually use database objects, the **models**
+section of the documentation page describes each type of object in the system
+along with all the fields available on that object.
+
+Taken together, the documentation pages should tell you every tag, filter,
+variable and object available to you in a given template.
+
+Custom tag and filter libraries
+===============================
+
+Certain applications provide custom tag and filter libraries. To access them in
+a template, use the ``{% load %}`` tag::
+
+    {% load comments %}
+
+    {% comment_form for blogs.entries entry.id with is_public yes %}
+
+In the above, the ``load`` tag loads the ``comments`` tag library, which then
+makes the ``comment_form`` tag available for use. Consult the documentation
+area in your admin to find the list of custom libraries in your installation.
+
+The ``{% load %}`` tag can take multiple library names, separated by spaces.
+Example::
+
+    {% load comments i18n %}
+    
+See :ref:`howto-custom-template-tags` for information on writing your own custom
+template libraries.
+
+Custom libraries and template inheritance
+-----------------------------------------
+
+When you load a custom tag or filter library, the tags/filters are only made
+available to the current template -- not any parent or child templates along
+the template-inheritance path.
+
+For example, if a template ``foo.html`` has ``{% load comments %}``, a child
+template (e.g., one that has ``{% extends "foo.html" %}``) will *not* have
+access to the comments template tags and filters. The child template is
+responsible for its own ``{% load comments %}``.
+
+This is a feature for the sake of maintainability and sanity.
\ No newline at end of file
diff --git a/docs/testing.txt b/docs/topics/testing.txt
similarity index 82%
rename from docs/testing.txt
rename to docs/topics/testing.txt
index 85f36518a3..ac5ea28064 100644
--- a/docs/testing.txt
+++ b/docs/topics/testing.txt
@@ -1,7 +1,12 @@
+.. _topics-testing:
+
 ===========================
 Testing Django applications
 ===========================
 
+.. module:: django.test
+   :synopsis: Testing tools for Django applications.
+
 Automated testing is an extremely useful bug-killing tool for the modern
 Web developer. You can use a collection of tests -- a **test suite** -- to
 solve, or avoid, a number of problems:
@@ -82,8 +87,8 @@ read Python's official documentation for the details.
     For example, this function has a docstring that describes what it does::
 
         def add_two(num):
-            "Return the result of adding two to the provided number."
-            return num + 2
+          "Return the result of adding two to the provided number."
+           return num + 2
 
     Because tests often make great documentation, putting tests directly in
     your docstrings is an effective way to document *and* test your code.
@@ -126,7 +131,7 @@ Here is an example model doctest::
         def speak(self):
             return 'The %s says "%s"' % (self.name, self.sound)
 
-When you `run your tests`_, the test runner will find this docstring, notice
+When you :ref:`run your tests <running-tests>`, the test runner will find this docstring, notice
 that portions of it look like an interactive Python session, and execute those
 lines while checking that the results match.
 
@@ -177,7 +182,7 @@ in the doctest section above::
             self.assertEquals(self.lion.speak(), 'The lion says "roar"')
             self.assertEquals(self.cat.speak(), 'The cat says "meow"')
 
-When you `run your tests`_, the default behavior of the test utility is
+When you :ref:`run your tests <running-tests>`, the default behavior of the test utility is
 to find all the test cases (that is, subclasses of ``unittest.TestCase``)
 in ``models.py`` and ``tests.py``, automatically build a test suite out of
 those test cases, and run that suite.
@@ -194,7 +199,6 @@ documentation`_.
 
 .. _unittest: http://docs.python.org/lib/module-unittest.html
 .. _standard library unittest documentation: unittest_
-.. _run your tests: `Running tests`_
 .. _suggested organization: http://docs.python.org/lib/organizing-tests.html
 
 Which should I use?
@@ -233,6 +237,8 @@ Again, remember that you can use both systems side-by-side (even in the same
 app). In the end, most projects will eventually end up using both. Each shines
 in different circumstances.
 
+.. _running-tests:
+
 Running tests
 =============
 
@@ -240,11 +246,12 @@ Once you've written tests, run them using your project's ``manage.py`` utility::
 
     $ ./manage.py test
 
-By default, this will run every test in every application in ``INSTALLED_APPS``.
-If you only want to run tests for a particular application, add the
-application name to the command line. For example, if your ``INSTALLED_APPS``
-contains ``'myproject.polls'`` and ``'myproject.animals'``, you can run the
-``myproject.animals`` unit tests alone with this command::
+By default, this will run every test in every application in
+:setting:`INSTALLED_APPS`. If you only want to run tests for a particular
+application, add the application name to the command line. For example, if your
+:setting:`INSTALLED_APPS` contains ``'myproject.polls'`` and
+``'myproject.animals'``, you can run the ``myproject.animals`` unit tests alone
+with this command::
 
     # ./manage.py test animals
 
@@ -273,25 +280,25 @@ for the tests.
 Regardless of whether the tests pass or fail, the test database is destroyed
 when all the tests have been executed.
 
-By default this test database gets its name by prepending ``test_`` to the
-value of the ``DATABASE_NAME`` setting. When using the SQLite database engine
+By default this test database gets its name by prepending ``test_`` to the value
+of the :setting:`DATABASE_NAME` setting. When using the SQLite database engine
 the tests will by default use an in-memory database (i.e., the database will be
 created in memory, bypassing the filesystem entirely!). If you want to use a
-different database name, specify the ``TEST_DATABASE_NAME`` setting.
+different database name, specify the :setting:`TEST_DATABASE_NAME` setting.
 
 Aside from using a separate database, the test runner will otherwise use all of
-the same database settings you have in your settings file: ``DATABASE_ENGINE``,
-``DATABASE_USER``, ``DATABASE_HOST``, etc. The test database is created by the
-user specified by ``DATABASE_USER``, so you'll need to make sure that the given
-user account has sufficient privileges to create a new database on the system.
+the same database settings you have in your settings file:
+:setting:`DATABASE_ENGINE`, :setting:`DATABASE_USER`, :setting:`DATABASE_HOST`,
+etc. The test database is created by the user specified by
+:setting:`DATABASE_USER`, so you'll need to make sure that the given user
+account has sufficient privileges to create a new database on the system.
 
 **New in Django development version:** For fine-grained control over the
-character encoding of your test database, use the ``TEST_DATABASE_CHARSET``
-setting. If you're using MySQL, you can also use the ``TEST_DATABASE_COLLATION``
-setting to control the particular collation used by the test database. See the
-settings_ documentation for details of these advanced settings.
-
-.. _settings: ../settings/
+character encoding of your test database, use the
+:setting:`TEST_DATABASE_CHARSET` setting. If you're using MySQL, you can also
+use the :setting:`TEST_DATABASE_COLLATION` setting to control the particular
+collation used by the test database. See the :ref:`settings documentation
+<ref-settings>` for details of these advanced settings.
 
 Understanding the test output
 -----------------------------
@@ -360,9 +367,12 @@ Django provides a small set of tools that come in handy when writing tests.
 The test client
 ---------------
 
+.. module:: django.test.client
+   :synopsis: Django's test client.
+
 The test client is a Python class that acts as a dummy Web browser, allowing
 you to test your views and interact with your Django-powered application
-programatically.
+programmatically.
 
 Some of the things you can do with the test client are:
 
@@ -429,11 +439,12 @@ Note a few important things about how the test client works:
       use a Python standard library module such as urllib_ or urllib2_.
 
     * To resolve URLs, the test client uses whatever URLconf is pointed-to by
-      your ``ROOT_URLCONF`` setting.
+      your :setting:`ROOT_URLCONF` setting.
 
     * Although the above example would work in the Python interactive
       interpreter, some of the test client's functionality, notably the
-      template-related functionality, is only available *while tests are running*.
+      template-related functionality, is only available *while tests are
+      running*.
 
       The reason for this is that Django's test runner performs a bit of black
       magic in order to determine which template was loaded by a given view.
@@ -449,11 +460,12 @@ Making requests
 Use the ``django.test.client.Client`` class to make requests. It requires no
 arguments at time of construction::
 
-    >>> c = Client()
+.. class:: Client()
 
 Once you have a ``Client`` instance, you can call any of the following methods:
 
-``get(path, data={})``
+.. method:: Client.get(path, data={})
+
     Makes a GET request on the provided ``path`` and returns a ``Response``
     object, which is documented below.
 
@@ -467,7 +479,8 @@ Once you have a ``Client`` instance, you can call any of the following methods:
 
         /customers/details/?name=fred&age=7
 
-``post(path, data={}, content_type=MULTIPART_CONTENT)``
+.. method:: Client.post(path, data={}, content_type=MULTIPART_CONTENT)
+
     Makes a POST request on the provided ``path`` and returns a ``Response``
     object, which is documented below.
 
@@ -516,10 +529,11 @@ Once you have a ``Client`` instance, you can call any of the following methods:
     Note that you should manually close the file after it has been provided to
     ``post()``.
 
-``login(**credentials)``
+.. method:: Client.login(**credentials)
+
     **New in Django development version**
 
-    If your site uses Django's `authentication system`_ and you deal with
+    If your site uses Django's :ref:`authentication system<topics-auth>` and you deal with
     logging in users, you can use the test client's ``login()`` method to
     simulate the effect of a user logging into the site.
 
@@ -528,15 +542,16 @@ Once you have a ``Client`` instance, you can call any of the following methods:
     a view.
 
     The format of the ``credentials`` argument depends on which
-    `authentication backend`_ you're using (which is configured by your
-    ``AUTHENTICATION_BACKENDS`` setting). If you're using the standard
+    :ref:`authentication backend <authentication-backends>` you're using (which is configured by your
+    :setting:`AUTHENTICATION_BACKENDS` setting). If you're using the standard
     authentication backend provided by Django (``ModelBackend``),
     ``credentials`` should be the user's username and password, provided as
     keyword arguments::
 
         >>> c = Client()
         >>> c.login(username='fred', password='secret')
-        >>> # Now you can access a view that's only available to logged-in users.
+        
+        # Now you can access a view that's only available to logged-in users.
 
     If you're using a different authentication backend, this method may require
     different credentials. It requires whichever credentials are required by
@@ -552,10 +567,11 @@ Once you have a ``Client`` instance, you can call any of the following methods:
     conditions. You'll need to create users as part of the test suite -- either
     manually (using the Django model API) or with a test fixture.
 
-``logout()``
+.. method:: Client.logout()
+
     **New in Django development version**
 
-    If your site uses Django's `authentication system`_, the ``logout()``
+    If your site uses Django's :ref:`authentication system<topics-auth>`, the ``logout()``
     method can be used to simulate the effect of a user logging out of
     your site.
 
@@ -563,9 +579,6 @@ Once you have a ``Client`` instance, you can call any of the following methods:
     session data cleared to defaults. Subsequent requests will appear to
     come from an AnonymousUser.
 
-.. _authentication system: ../authentication/
-.. _authentication backend: ../authentication/#other-authentication-sources
-
 Testing responses
 ~~~~~~~~~~~~~~~~~
 
@@ -576,46 +589,44 @@ test code to verify.
 
 Specifically, a ``Response`` object has the following attributes:
 
-    ===============  ==========================================================
-    Attribute        Description
-    ===============  ==========================================================
-    ``client``       The test client that was used to make the request that
-                     resulted in the response.
+.. class:: Response()
 
-    ``content``      The body of the response, as a string. This is the final
-                     page content as rendered by the view, or any error
-                     message.
+.. attribute:: Response.client``       
+    The test client that was used to make the request that resulted in the
+    response.
 
-    ``context``      The template ``Context`` instance that was used to render
-                     the template that produced the response content.
+.. attribute:: Response.content
+    The body of the response, as a string. This is the final page content as
+    rendered by the view, or any error message.
 
-                     If the rendered page used multiple templates, then
-                     ``context`` will be a list of ``Context``
-                     objects, in the order in which they were rendered.
+.. attribute:: Response.context
+    The template ``Context`` instance that was used to render the template that
+    produced the response content.
 
-    ``request``      The request data that stimulated the response.
+    If the rendered page used multiple templates, then ``context`` will be a
+    list of ``Context`` objects, in the order in which they were rendered.
 
-    ``status_code``  The HTTP status of the response, as an integer. See
-                     RFC2616_ for a full list of HTTP status codes.
+.. attribute:: Response.request``      
+    The request data that stimulated the response.
 
-    ``template``     The ``Template`` instance that was used to render the
-                     final content. Use ``template.name`` to get the
-                     template's file name, if the template was loaded from a
-                     file. (The name is a string such as
-                     ``'admin/index.html'``.)
+.. attribute:: Response.status_code 
+    The HTTP status of the response, as an integer. See RFC2616_ for a full list
+    of HTTP status codes.
 
-                     If the rendered page used multiple templates -- e.g.,
-                     using `template inheritance`_ -- then ``template`` will
-                     be a list of ``Template`` instances, in the order in
-                     which they were rendered.
-    ===============  ==========================================================
+.. attribute:: template
+    The ``Template`` instance that was used to render the final content. Use
+    ``template.name`` to get the template's file name, if the template was
+    loaded from a file. (The name is a string such as ``'admin/index.html'``.)
+    
+    If the rendered page used multiple templates -- e.g., using :ref:`template
+    inheritance<template-inheritance>` -- then ``template`` will be a list of ``Template`` instances,
+    in the order in which they were rendered.
 
 You can also use dictionary syntax on the response object to query the value
 of any settings in the HTTP headers. For example, you could determine the
 content type of a response using ``response['Content-Type']``.
 
 .. _RFC2616: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
-.. _template inheritance: ../templates/#template-inheritance
 
 Exceptions
 ~~~~~~~~~~
@@ -643,19 +654,15 @@ will effectively delete all cookies).
 A test client has two attributes that store persistent state information. You
 can access these properties as part of a test condition.
 
-    ===============  ==========================================================
-    Attribute        Description
-    ===============  ==========================================================
-    ``cookies``      A Python ``SimpleCookie`` object, containing the current
-                     values of all the client cookies. See the
-                     `Cookie module documentation`_ for more.
+.. attribute:: Client.cookies
+    A Python ``SimpleCookie`` object, containing the current values of all the
+    client cookies. See the `Cookie module documentation`_ for more.
 
-    ``session``      A dictionary-like object containing session information.
-                     See the `session documentation`_ for full details.
-    ===============  ==========================================================
+.. attribute:: Client.session
+    A dictionary-like object containing session information. See the :ref:`session
+    documentation<topics-http-sessions>` for full details.
 
 .. _Cookie module documentation: http://docs.python.org/lib/module-Cookie.html
-.. _session documentation: ../sessions/
 
 Example
 ~~~~~~~
@@ -674,7 +681,7 @@ The following is a simple unit test using the test client::
             # Issue a GET request.
             response = self.client.get('/customer/details/')
 
-            # Check that the respose is 200 OK.
+            # Check that the response is 200 OK.
             self.failUnlessEqual(response.status_code, 200)
 
             # Check that the rendered context contains 5 customers.
@@ -683,10 +690,15 @@ The following is a simple unit test using the test client::
 TestCase
 --------
 
+.. currentmodule:: django.test
+
 Normal Python unit test classes extend a base class of ``unittest.TestCase``.
-Django provides an extension of this base class -- ``django.test.TestCase``
--- that provides some additional capabilities that can be useful for
-testing Web sites.
+Django provides an extension of this base class:
+
+.. class:: TestCase()
+
+This class provides some additional capabilities that can be useful for testing
+Web sites.
 
 Converting a normal ``unittest.TestCase`` to a Django ``TestCase`` is easy:
 just change the base class of your test from ``unittest.TestCase`` to
@@ -699,6 +711,8 @@ Default test client
 
 **New in Django development version**
 
+.. attribute:: TestCase.client
+
 Every test case in a ``django.test.TestCase`` instance has access to an
 instance of a Django test client. This client can be accessed as
 ``self.client``. This client is recreated for each test, so you don't have to
@@ -733,9 +747,13 @@ This means, instead of instantiating a ``Client`` in each test::
             response = self.client.get('/customer/index/')
             self.failUnlessEqual(response.status_code, 200)
 
+.. _topics-testing-fixtures:
+
 Fixture loading
 ~~~~~~~~~~~~~~~
 
+.. attribute:: TestCase.fixtures
+
 A test case for a database-backed Web site isn't much use if there isn't any
 data in the database. To make it easy to put test data into the database,
 Django's custom ``TestCase`` class provides a way of loading **fixtures**.
@@ -746,7 +764,7 @@ fixture of fake user accounts in order to populate your database during tests.
 
 The most straightforward way of creating a fixture is to use the
 ``manage.py dumpdata`` command. This assumes you already have some data in
-your database. See the `dumpdata documentation`_ for more details.
+your database. See the :djadmin:`dumpdata documentation<dumpdata>` for more details.
 
 .. note::
     If you've ever run ``manage.py syncdb``, you've already used a fixture
@@ -782,21 +800,20 @@ Here's specifically what will happen:
 
     * Then, all the named fixtures are installed. In this example, Django will
       install any JSON fixture named ``mammals``, followed by any fixture named
-      ``birds``. See the `loaddata documentation`_ for more details on defining
+      ``birds``. See the :djadmin:`loaddata documentation<loaddata>` for more details on defining
       and installing fixtures.
 
 This flush/load procedure is repeated for each test in the test case, so you
 can be certain that the outcome of a test will not be affected by
 another test, or by the order of test execution.
 
-.. _dumpdata documentation: ../django-admin/#dumpdata-appname-appname
-.. _loaddata documentation: ../django-admin/#loaddata-fixture-fixture
-
 URLconf configuration
 ~~~~~~~~~~~~~~~~~~~~~
 
 **New in Django development version**
 
+.. attribute:: TestCase.urls
+
 If your application provides views, you may want to include tests that
 use the test client to exercise those views. However, an end user is free
 to deploy the views in your application at any URL of their choosing.
@@ -808,12 +825,12 @@ In order to provide a reliable URL space for your test,
 configuration for the duration of the execution of a test suite.
 If your ``TestCase`` instance defines an ``urls`` attribute, the
 ``TestCase`` will use the value of that attribute as the ``ROOT_URLCONF``
-for the duration of that test.
+for the duration of that test. 
 
 For example::
 
     from django.test import TestCase
-
+    
     class TestMyViews(TestCase):
         urls = 'myapp.test_urls'
 
@@ -823,6 +840,8 @@ For example::
 This test case will use the contents of ``myapp.test_urls`` as the
 URLconf for the duration of the test case.
 
+.. _emptying-test-outbox:
+
 Emptying the test outbox
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -843,16 +862,16 @@ methods such as ``assertTrue`` and ``assertEquals``, Django's custom
 ``TestCase`` class provides a number of custom assertion methods that are
 useful for testing Web applications:
 
-``assertContains(response, text, count=None, status_code=200)``
+.. method:: TestCase.assertContains(response, text, count=None, status_code=200)
     Asserts that a ``Response`` instance produced the given ``status_code`` and
     that ``text`` appears in the content of the response. If ``count`` is
     provided, ``text`` must occur exactly ``count`` times in the response.
 
-``assertNotContains(response, text, status_code=200)``
+.. method:: TestCase.assertNotContains(response, text, status_code=200)
     Asserts that a ``Response`` instance produced the given ``status_code`` and
     that ``text`` does not appears in the content of the response.
 
-``assertFormError(response, form, field, errors)``
+.. method:: assertFormError(response, form, field, errors)
     Asserts that a field on a form raises the provided list of errors when
     rendered on the form.
 
@@ -867,17 +886,17 @@ useful for testing Web applications:
     ``errors`` is an error string, or a list of error strings, that are
     expected as a result of form validation.
 
-``assertTemplateUsed(response, template_name)``
+.. method:: assertTemplateUsed(response, template_name)
     Asserts that the template with the given name was used in rendering the
     response.
 
     The name is a string such as ``'admin/index.html'``.
 
-``assertTemplateNotUsed(response, template_name)``
+.. method:: assertTemplateNotUsed(response, template_name)
     Asserts that the template with the given name was *not* used in rendering
     the response.
 
-``assertRedirects(response, expected_url, status_code=302, target_status_code=200)``
+.. method:: assertRedirects(response, expected_url, status_code=302, target_status_code=200)
     Asserts that the response return a ``status_code`` redirect status,
     it redirected to ``expected_url`` (including any GET data), and the subsequent
     page was received with ``target_status_code``.
@@ -887,24 +906,28 @@ E-mail services
 
 **New in Django development version**
 
-If any of your Django views send e-mail using `Django's e-mail functionality`_,
-you probably don't want to send e-mail each time you run a test using that
-view. For this reason, Django's test runner automatically redirects all
-Django-sent e-mail to a dummy outbox. This lets you test every aspect of
-sending e-mail -- from the number of messages sent to the contents of each
-message -- without actually sending the messages.
+If any of your Django views send e-mail using :ref:`Django's e-mail
+functionality <topics-email>`, you probably don't want to send e-mail each time
+you run a test using that view. For this reason, Django's test runner
+automatically redirects all Django-sent e-mail to a dummy outbox. This lets you
+test every aspect of sending e-mail -- from the number of messages sent to the
+contents of each message -- without actually sending the messages.
 
 The test runner accomplishes this by transparently replacing the normal
-`SMTPConnection`_ class with a different version. (Don't worry -- this has no
-effect on any other e-mail senders outside of Django, such as your machine's
-mail server, if you're running one.)
+:class:`~django.core.mail.SMTPConnection` class with a different version. (Don't
+worry -- this has no effect on any other e-mail senders outside of Django, such
+as your machine's mail server, if you're running one.)
+
+.. currentmodule:: django.core.mail
+
+.. data:: django.core.mail.output
 
 During test running, each outgoing e-mail is saved in
-``django.core.mail.outbox``. This is a simple list of all `EmailMessage`_
+``django.core.mail.outbox``. This is a simple list of all :class:`<~django.core.mail.EmailMessage>`
 instances that have been sent. It does not exist under normal execution
 conditions, i.e., when you're not running unit tests. The outbox is created
-during test setup, along with the dummy `SMTPConnection`_. When the test
-framework is torn down, the standard `SMTPConnection`_ class is restored, and
+during test setup, along with the dummy :class:`<~django.core.mail.SMTPConnection>`. When the test
+framework is torn down, the standard :class:`<~django.core.mail.SMTPConnection>` class is restored, and
 the test outbox is destroyed.
 
 Here's an example test that examines ``django.core.mail.outbox`` for length
@@ -926,7 +949,7 @@ and contents::
             # Verify that the subject of the first message is correct.
             self.assertEqual(mail.outbox[0].subject, 'Subject here')
 
-As noted `previously`_, the test outbox is emptied at the start of every
+As noted :ref:`previously <emptying-test-outbox>`, the test outbox is emptied at the start of every
 test in a Django ``TestCase``. To empty the outbox manually, assign the
 empty list to ``mail.outbox``::
 
@@ -935,11 +958,6 @@ empty list to ``mail.outbox``::
     # Empty the test outbox
     mail.outbox = []
 
-.. _`Django's e-mail functionality`: ../email/
-.. _`SMTPConnection`: ../email/#the-emailmessage-and-smtpconnection-classes
-.. _`EmailMessage`: ../email/#the-emailmessage-and-smtpconnection-classes
-.. _`previously`: #emptying-the-test-outbox
-
 Using different testing frameworks
 ==================================
 
@@ -948,8 +966,8 @@ frameworks. While Django doesn't provide explicit support for alternative
 frameworks, it does provide a way to invoke tests constructed for an
 alternative framework as if they were normal Django tests.
 
-When you run ``./manage.py test``, Django looks at the ``TEST_RUNNER``
-setting to determine what to do. By default, ``TEST_RUNNER`` points to
+When you run ``./manage.py test``, Django looks at the :setting:`TEST_RUNNER`
+setting to determine what to do. By default, :setting:`TEST_RUNNER` points to
 ``'django.test.simple.run_tests'``. This method defines the default Django
 testing behavior. This behavior involves:
 
@@ -969,30 +987,32 @@ testing behavior. This behavior involves:
 
     #. Performing global post-test teardown.
 
-If you define your own test runner method and point ``TEST_RUNNER`` at that
-method, Django will execute your test runner whenever you run
-``./manage.py test``. In this way, it is possible to use any test framework
-that can be executed from Python code.
+If you define your own test runner method and point :setting:`TEST_RUNNER` at
+that method, Django will execute your test runner whenever you run ``./manage.py
+test``. In this way, it is possible to use any test framework that can be
+executed from Python code.
 
 Defining a test runner
 ----------------------
 
 **New in Django development version**
 
+.. currentmodule:: django.test.simple
+
 By convention, a test runner should be called ``run_tests``. The only strict
 requirement is that it has the same arguments as the Django test runner:
 
-``run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[])``
-
+.. function:: run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[])
     ``test_labels`` is a list of strings describing the tests to be run. A test
     label can take one of three forms:
 
-        * ``app.TestCase.test_method`` -- Run a single test method in a test case.
+        * ``app.TestCase.test_method`` -- Run a single test method in a test
+          case.
         * ``app.TestCase`` -- Run all the test methods in a test case.
         * ``app`` -- Search for and run all tests in the named application.
 
     If ``test_labels`` has a value of ``None``, the test runner should run
-    search for tests in all the applications in ``INSTALLED_APPS``.
+    search for tests in all the applications in :setting:`INSTALLED_APPS`.
 
     ``verbosity`` determines the amount of notification and debug information
     that will be printed to the console; ``0`` is no output, ``1`` is normal
@@ -1013,15 +1033,18 @@ requirement is that it has the same arguments as the Django test runner:
 Testing utilities
 -----------------
 
+.. module:: django.test.utils
+   :synopsis: Helpers to write custom test runners.
+
 To assist in the creation of your own test runner, Django provides
 a number of utility methods in the ``django.test.utils`` module.
 
-``setup_test_environment()``
+.. function:: setup_test_environment()
     Performs any global pre-test setup, such as the installing the
     instrumentation of the template rendering system and setting up
     the dummy ``SMTPConnection``.
 
-``teardown_test_environment()``
+.. function:: teardown_test_environment()
     Performs any global post-test teardown, such as removing the
     black magic hooks into the template system and restoring normal e-mail
     services.
@@ -1029,7 +1052,7 @@ a number of utility methods in the ``django.test.utils`` module.
 The creation module of the database backend (``connection.creation``) also
 provides some utilities that can be useful during testing.
 
-``create_test_db(verbosity=1, autoclobber=False)``
+.. function:: create_test_db(verbosity=1, autoclobber=False)
     Creates a new test database and runs ``syncdb`` against it.
 
     ``verbosity`` has the same behavior as in ``run_tests()``.
@@ -1050,8 +1073,8 @@ provides some utilities that can be useful during testing.
     **New in Django development version:** This function returns the name of
     the test database that it created.
 
-``destroy_test_db(old_database_name, verbosity=1)``
-    Destroys the database whose name is in the ``DATABASE_NAME`` setting
-    and restores the value of ``DATABASE_NAME`` to the provided name.
+.. function:: destroy_test_db(old_database_name, verbosity=1)
+    Destroys the database whose name is in the :setting:`DATABASE_NAME` setting
+    and restores the value of :setting:`DATABASE_NAME` to the provided name.
 
     ``verbosity`` has the same behavior as in ``run_tests()``.